gpt4 book ai didi

events - 如何向 sqlalchemy 模型添加事件回调?

转载 作者:行者123 更新时间:2023-12-01 13:05:10 25 4
gpt4 key购买 nike

有一个页面演示了如何在使用 Elixir 时执行此操作:

http://beachcoder.wordpress.com/2007/05/02/adding-event-callbacks-to-sqlalchemyelixir-classes/

但我不使用 Elixir,我只是直接使用 sqlalchemy,并将我的模型定义为:

Base = declarative_base()

class User(Base):
__tablename__ = "users"
...

def send_email(self):
# send email to the user

我想做的是:

class User(Base):
__tablename__ = "users"
...
before_insert('init_user', 'send_email')
before_delete('something_before_delete')

def init_user(self):
# init some data of the user
def send_email(self):
# send email to the user
def something_before_delete(self):
# something before delete

注意 before_insertbefore_delete 方法。我该怎么办?

最佳答案

您问题的答案是使用扩展(MapperExtension、SessionExtension...),如here所述.

但您几乎肯定不想在这种情况下发送电子邮件之类的事情。正确的方法是记录操作并在事务完成后对日志条目进行后处理。

[编辑] sqlalchemy 文档已更改;处理这个问题的新方法是使用 ORM Events

关于events - 如何向 sqlalchemy 模型添加事件回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3641524/

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