Django的ORM可以输出它正在使用的SQL查询吗?

dluptydi  于 2022-12-24  发布在  Go
关注(0)|答案(3)|浏览(125)

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

Protocols.objects.filter(active=False)

我在文档中找不到这个,所以希望有人能把它们指向我,如果Django真的能做到的话。

vjrehmav

vjrehmav1#

查看Django常见问题解答:我怎样才能看到Django正在运行的原始SQL查询?:

>>> from django.db import connection    
>>> connection.queries = []
>>> Protocols.objects.filter(active=False)
>>> print(connection.queries)
3pvhb19x

3pvhb19x2#

可以。您需要确保设置文件中包含DEBUG=True
你可以看到哪些sql查询已经被执行了...

>>> from django.db import connection
>>> connection.queries

显然,您需要执行一些查询才能在这里看到它们。
要查看交付特定QuerySet所执行的操作,可以执行以下操作

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

此处记录http://docs.djangoproject.com/en/dev/faq/models/

7vhp5slm

7vhp5slm3#

我发现Django debug toolbar是非常宝贵的,还有.as_sql()用于代码内显示内容(请参阅this SO post以获得注解,这是一个很好的说明)

相关问题