一尘不染

如何查看Django正在运行的原始SQL查询?

django

有没有一种方法可以显示执行查询时Django正在运行的SQL?


阅读 513

收藏
2020-03-25

共1个答案

一尘不染

请参阅文档FAQ:“ 如何查看Django正在运行的原始SQL查询? ”

django.db.connection.queries 包含SQL查询的列表:

from django.db import connection
print(connection.queries)

查询集还具有包含要执行的查询的query属性:

print(MyModel.objects.filter(name="my name").query)

请注意,查询的输出不是有效的SQL,因为:

“ Django从未实际插入参数:它将查询和参数分别发送到数据库适配器,后者执行适当的操作。”

来自Django错误报告#17741。

因此,你不应将查询输出直接发送到数据库。

2020-03-25