Can Django';ORM输出它正在使用的SQL查询?

Can Django';ORM输出它正在使用的SQL查询?,django,django-orm,Django,Django Orm,我知道您可以输出SQL以查看创建的表。Django是否可以输出用于任何查询的sql,如: Protocols.objects.filter(active=False) ??我在文档中找不到这一点,所以如果Django真的能做到的话,希望有人能把它们指给我看。我觉得这是非常宝贵的。还有.as_sql()用于代码内显示内容(请参阅其中的一行注释)请参阅Django常见问题解答: 是的,它可以。你需要确保 调试=真 在您的设置文件中 您可以查看由…执行的sql查询 >>> from

我知道您可以输出SQL以查看创建的表。Django是否可以输出用于任何查询的sql,如:

Protocols.objects.filter(active=False)
??我在文档中找不到这一点,所以如果Django真的能做到的话,希望有人能把它们指给我看。

我觉得这是非常宝贵的。还有.as_sql()用于代码内显示内容(请参阅其中的一行注释)

请参阅Django常见问题解答:


是的,它可以。你需要确保 调试=真
在您的设置文件中

您可以查看由…执行的sql查询

>>> from django.db import connection
>>> connection.queries
显然,您需要执行一些查询才能在此处看到它们

要查看为交付特定查询集而执行的操作,可以执行以下操作

str(MyModel.objects.filter(myvar_ugte=15.query)

这里有记录

太好了,我不知道我以前怎么没看到。这很好,但问题是有些查询可以删除。你必须知道把说明书放在哪里。如果我想在不知情的情况下查看所有查询,我的意思是,如果只在一个地方找到输出,有时您可能看不到所有SQL指令。@sergzach:So。。找到您需要的输出?更新:除非您需要完整的SQL日志,否则您可以检查您的数据库日志,django.db Python日志(在调试模式下),或者使用dev server将SQL记录到控制台(我不记得它在哪个加载项中)
>>> from django.db import connection
>>> connection.queries