一尘不染

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

sql

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


阅读 120

收藏
2021-05-05

共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

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

2021-05-05