首頁 >後端開發 >Python教學 >如何檢查 Django 執行的 SQL 查詢?

如何檢查 Django 執行的 SQL 查詢?

Barbara Streisand
Barbara Streisand原創
2024-11-02 16:59:03827瀏覽

How Can I Inspect the SQL Queries Executed by Django?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn