跟踪修改

警告

跟踪更改会增加大量的开销。在大多数情况下,最好直接使用 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)