您的应用程序很可能没有使用Flask-SQLAlchemy事件系统,因此可以安全地关闭它。您需要审核代码以进行验证-
您正在寻找与
models_committed或
before_models_committed挂钩的任何内容。如果确实发现您正在使用Flask-
SQLAlchemy事件系统,则可能应该更新代码以改为使用SQLAlchemy的内置事件系统。
从Flask-SQLAlchemy 2.1开始
None,默认值为,这是一个伪造的值,因此事件系统 被禁用
。在旧版本中,默认值为
True,因此您需要明确禁用它。
但是,在这两种情况下,除非将警告明确设置为,否则警告都不会消失
False。为此,请添加:
SQLALCHEMY_TRACK_MODIFICATIONS = False
到您的应用程序配置。
背景-警告告诉您的是以下内容:
Flask-
SQLAlchemy有其自己的事件通知系统,该系统在SQLAlchemy之上分层。为此,它跟踪对SQLAlchemy会话的修改。这会占用额外的资源,因此该选项
SQLALCHEMY_TRACK_MODIFICATIONS允许您禁用修改跟踪系统。
更改的理由有三点:
使用Flask-SQLAlchemy的事件系统的人并不多,但是大多数人没有意识到他们可以通过禁用它来节省系统资源。因此,更明智的默认设置是禁用它,想要它的人可以打开它。
Flask-SQLAlchemy中的事件系统存在相当多的错误(请参阅下面提到的请求请求中与之相关的问题),需要为很少有人使用的功能进行额外的维护。
在v0.7中,SQLAlchemy本身添加了功能强大的事件系统,包括创建自定义事件的功能。理想情况下,Flask-SQLAlchemy事件系统除了创建一些自定义的SQLAlchemy事件挂钩和侦听器外,无所不用其事,然后让SQLAlchemy自己管理事件触发器。
您可以在有关开始触发此警告的请求请求的讨论中看到更多信息。



