Events 如何将事件回调添加到sqlalchemy模型?

Events 如何将事件回调添加到sqlalchemy模型?,events,callback,sqlalchemy,Events,Callback,Sqlalchemy,有一个页面演示了如何使用Elixir: 但我不使用Elixir,我只是直接使用sqlalchemy,并将我的模型定义为: Base = declarative_base() class User(Base): __tablename__ = "users" ... def send_email(self): # send email to the user 我想做的是: class User(Base): __tablename__ = "

有一个页面演示了如何使用Elixir:

但我不使用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

注意插入之前的
和删除之前的
方法。我该怎么办?

您的问题的答案是使用所述的扩展名(MapperExtension、SessionExtension…)

但你几乎肯定不想在这样的环境下发送电子邮件。正确的方法是记录操作并在事务完成后对日志条目进行后期处理


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

感谢您关于“不要在此处发送电子邮件”的建议,这非常重要。现在,我在你给我的页面上做了一些回调,但是还有一个问题。你能帮我: