我试图弄清楚如何在从 ORM 插入一行之前编写一个钩子来查询数据库。我希望能达到类似的效果:
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 文档,但我不知道如何使用它们来实现这一点。