gpt4 book ai didi

orm - SQLAlchemy ORM 插入前钩子(Hook)

转载 作者:行者123 更新时间:2023-12-03 14:30:48 25 4
gpt4 key购买 nike

我试图弄清楚如何在从 ORM 插入一行之前编写一个钩子(Hook)来查询数据库。我希望能达到类似的效果:

class Table(Base):
id = Column(Integer, primary_key=True)
value = Column(Integer, nullable=False)

def before_insert_hook(self, session):
"""Some arbitrary queries and code. For example:"""
if self.value is None:
self.value = session.query(func.avg(Table.value))\
.filter(Table.value > 100).scalar()

我一直在阅读有关 ORM 事件等的 SQLAlchemy 文档,但我不知道如何使用它们来实现这一点。

最佳答案

看起来你想要 ORM Events :

from sqlalchemy import event

class Table(Base):
...

@event.listens_for(Table, 'before_insert')
def do_stuff(mapper, connect, target):
# target is an instance of Table
target.value = ...

关于orm - SQLAlchemy ORM 插入前钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13830708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com