How to Inspect SQL Queries in Django
想知道 Django 在執行查詢時執行的 SQL 語句嗎?答案很簡單:
1. 從文件中找出答案
Django 文件的FAQ 部分提供了直接的答案:
2. 存取資料庫連線
可以透過django.db.connection.queries 存取SQL 查詢清單:
<code class="python">from django.db import connection print(connection.queries)</code>
3. 檢視Queryset 物件
Queryset 物件具有一個屬性,其中包含要執行的查詢:
<code class="python">print(MyModel.objects.filter(name="my name").query)</code>
注意:輸出的查詢不是有效的SQL。原因是:
「Django 從不實際插值參數:它將查詢和參數分別發送給資料庫適配器,由適配器執行適當的操作。」
(摘自Django bug 報告#17741)#17741)#17741)
因此,請勿將查詢輸出直接傳送到資料庫。
重置查詢
如果你需要重置查詢,例如查看給定時間段內運行的查詢數量,可以使用django.db.reset_queries:
<code class="python">from django.db import reset_queries from django.db import connection reset_queries() # 运行你的查询 print(connection.queries) >>> []</code>
以上是如何檢查 Django 執行的 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!