禁用“记住每个 SQL 查询”(Django)
Posted
技术标签:
【中文标题】禁用“记住每个 SQL 查询”(Django)【英文标题】:Disable "remember every SQL query" (Django) 【发布时间】:2019-08-06 16:32:17 【问题描述】:我知道:
同样重要的是要记住,当打开 DEBUG 运行时,Django 会记住它执行的每个 SQL 查询。这在您调试时很有用,但它会迅速消耗生产服务器上的内存。
来源:https://docs.djangoproject.com/en/dev/ref/settings/#debug
我有一个可以进行压力测试的 python 脚本。
此脚本不使用 django 测试运行程序。
它在循环中使用 ORM,在每次迭代中产生越来越多的流量。
如果我的脚本可以在任何环境中运行,那就太好了。
我不希望其他开发人员在执行此脚本之前强制修改他们的设置(将 DEBUG 配置为 False)。
有没有办法禁用“记住每个 SQL 查询”的特定功能?
【问题讨论】:
How do you set DEBUG to True when running a Django test?的可能重复 这里详情test-runner-options @BearBrown 此脚本不使用 django 测试运行程序。 【参考方案1】:您可以尝试猴子修补 BaseDatabaseWrapper
以将 queries_limit
设置为零。否则,您可以让脚本验证 debug 是否设置为 False,如果他们尝试在 debug 设置为 True 的情况下使用它,则显示一条消息,通知他们使用 DEBUG=False python manage.py script
运行它。
【讨论】:
以上是关于禁用“记住每个 SQL 查询”(Django)的主要内容,如果未能解决你的问题,请参考以下文章
Django/Django Rest 框架 - 禁用 CSRF