如何查看Django ORM實際執行的原始SQL查詢
確保Django的DEBUG配置為True
,執行命令(可以在shell中執行)
:
>>> from django.db import connection
>>> connection.queries
[{'sql': 'SELECT polls_polls.id, polls_polls.question, polls_polls.pub_date FROM polls_polls',
'time': '0.002'}]
如果DEBUG為False
,則connection.queries
為空[]
。
connection.queries
包含所有的SQL語句INSERT,UPDATE,SELECT等。每次您的應用訪問數據庫試,都會記錄查詢。
如果使用多個數據庫
,則可以在connections
字典中的每個成員上使用相同的接口:
>>> from django.db import connections
>>> connections['my_db_alias'].queries
如果您需要手動的清除查詢列表
,則需要執行reset_queries函數
:
>>> from django.db import reset_queries
>>> reset_queries()
>>> connection.queries
[]