栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我如何知道是否可以禁用SQLALCHEMY_TRACK_MODIFICATIONS?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我如何知道是否可以禁用SQLALCHEMY_TRACK_MODIFICATIONS?

你的应用程序很可能没有使用Flask-SQLAlchemy事件系统,因此可以安全地关闭它。你需要审核代码以进行验证-你正在寻找与

models_committed
before_models_committed
挂钩的任何内容。如果确实发现你正在使用Flask-SQLAlchemy事件系统,则可能应该更新代码以改为使用SQLAlchemy的内置事件系统。

要关闭Flask-SQLAlchemy事件系统(并禁用警告),只需添加:

SQLALCHEMY_TRACK_MODIFICATIONS = False

更改为你的应用程序配置,直到更改默认设置为止(很有可能在Flask-SQLAlchemy v3中)。

背景-以下是警告告诉你的内容:

Flask-SQLAlchemy有自己的事件通知系统,该系统在SQLAlchemy之上分层。为此,它跟踪对SQLAlchemy会话的修改。这会占用额外的资源,因此该选项SQLALCHEMY_TRACK_MODIFICATIONS允许你禁用修改跟踪系统。当前,该选项默认为True,但将来该默认值将更改为False,从而禁用事件系统。

据我了解,更改的理由有三点:

  1. 使用Flask-SQLAlchemy的事件系统的人并不多,但是大多数人没有意识到他们可以通过禁用它来节省系统资源。因此,更明智的默认设置是禁用它,想要它的人可以打开它。

  2. Flask-SQLAlchemy中的事件系统存在相当多的错误(请参阅下面提到的pull请求中与之相关的问题),需要为很少有人使用的功能进行额外的维护。

  3. 在v0.7中,SQLAlchemy本身添加了功能强大的事件系统,其中包括创建自定义事件的功能。理想情况下,Flask-SQLAlchemy事件系统除了创建一些自定义SQLAlchemy事件钩子和侦听器外,无所不用其事,然后让SQLAlchemy自己管理事件触发器。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/380566.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号