gpt4 book ai didi

python - SQLAlchemy 事件注册

转载 作者:行者123 更新时间:2023-12-05 06:42:25 24 4
gpt4 key购买 nike

我正在尝试弄清楚 SQLAlchemy 是如何处理事件注册的。我有一种情况,我想将所有事件监听器保存在一个文件中,而不是模型中(我想这样做是为了避免我的模型导入具有业务逻辑的 Controller )。但是如果我尝试在单独的文件中执行类似以下的操作,代码将不会触发:

from sqlalchemy.event import listens_for
from models import User


@listens_for(User, 'before_update')
def before_update_listener(mapper, connection, instance):
print "do something"

这是有道理的,这个模块从未被导入,但是我如何告诉 SQLAlchemy 事件监听器存在于某些 listeners.py 文件中?

最佳答案

必须导入该文件,您可以执行以下操作:

# listeners.py
from sqlalchemy.event import listens_for
from models import User


@listens_for(User, 'before_update')
def before_update_listener(mapper, connection, instance):
print "do something"

.

# __init__.py
from . import events
del events

关于python - SQLAlchemy 事件注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37170059/

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