首页 > 解决方案 > 在运行时 Django 中保存 sql 查询

问题描述

我使用 Django ORM 动态创建复杂的 SQL 查询,我想在运行时保存 Django 为将来使用而构建的 SQL 查询,我还没有找到合适的方法来做这件事。

正如这里所解释的,有两种方法可以访问查询,但只connection.queries包含一个有效的查询,并且需要设置debug=True.

因为我想在产品环境中做,debug=True对我来说并不是一个真正的解决方案,我不想更改Django源代码。

任何解决方案/评论都可以帮助我。

我使用 Django 2.2。

标签: django

解决方案


答案取决于您希望如何保存和重复使用这些查询。

如果您想在 Django 应用程序之外存储/使用查询,我建议您更改日志记录设置,例如,如此。另请参阅文档。如有必要,日志记录也可以在 SQL 数据库本身而不是在 Django 中完成。

Django 应用程序中保存和重用查询似乎很棘手,而且connection.queries只有在调试环境中才能工作是出于安全原因。可以尝试采用与此处所述类似的方法。


推荐阅读