跟踪修改¶
警告
跟踪更改会增加大量的开销。在大多数情况下,最好直接使用 SQLAlchemy 事件。
Flask-SQLAlchemy 可以设置其会话以跟踪模型的插入、更新和删除,然后在调用 session.flush()
和 session.commit()
之前或期间使用 Blinker 信号发送这些更改的列表。
要启用此功能,请在 Flask 应用程序配置中设置 SQLALCHEMY_TRACK_MODIFICATIONS
。然后向 models_committed
(在提交后发出)或 before_models_committed
(在提交前发出)添加一个侦听器。
from flask_sqlalchemy.track_modifications import models_committed
def get_modifications(sender: Flask, changes: list[tuple[t.Any, str]]) -> None:
...
models_committed.connect(get_modifications)