How to Inspect SQL Queries in Django
想知道 Django 在執行查詢時執行的 SQL 語句嗎?答案很簡單:
1. 從文件中找出答案
Django 文件的FAQ 部分提供了直接的解答:
2. 存取資料庫連線
可以透過django.db.connection.queries 存取SQL 查詢清單:
from django.db import connection
print(connection.queries)
3. 檢視Queryset 物件
Queryset 物件具有一個query 屬性,其中包含要執行的查詢:
print(MyModel.objects.filter(name="my name").query)
注意:輸出的查詢不是有效的SQL。原因是:
「Django 從不實際插值參數:它將查詢和參數分別發送給資料庫適配器,由適配器執行適當的操作。」
(摘自Django bug 報告#17741)
因此,請勿將查詢輸出直接傳送至資料庫。
重置查詢
如果你需要重置查詢,例如查看給定時間內運行的查詢數量,可以使用django.db.reset_queries:
from django.db import reset_queries
from django.db import connection
reset_queries()
# 运行你的查询
print(connection.queries)
>>> []
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3