【问题标题】:Saving sql query in runtime Django在运行时 Django 中保存 sql 查询
【发布时间】:2021-11-24 19:14:36
【问题描述】:

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

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

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

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

我使用 Django 2.2。

【问题讨论】:

  • 如果你想记录查询,这不是办法
  • @AhmedI.Elsayed 我需要查询以便稍后从 aws 中的 lambda 运行它,所以我想将它保存在数据库中。

标签: django


【解决方案1】:

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

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

在 Django 应用程序内部保存和重用查询似乎很棘手,并且出于安全原因,connection.queries 仅适用于调试环境。人们可以尝试一种与here 类似的方法。

【讨论】:

  • 感谢您的回复。我想将查询保存在db中,似乎RequireDebugFalse设置没有用,因为Django仅在'debug = true'的情况下将查询写入日志,如果我错了,请纠正我。还有一点是我需要用http请求中发送的参数将查询保存在数据库中,所以我不确定日志是否可以提供帮助。
  • 那么我建议采用here 中提到的方法,以获取填充参数的完整查询。
猜你喜欢
  • 1970-01-01
  • 2012-10-21
  • 1970-01-01
  • 2012-07-13
  • 2020-07-15
  • 1970-01-01
  • 2021-04-12
  • 2011-05-03
  • 1970-01-01
相关资源
最近更新 更多