Django強大的ORM簡化了資料庫交互,但在某些情況下,檢查正在執行的原始SQL查詢非常有益。本文示範如何擷取和分析這些SQL語句以進行偵錯和最佳化。
要存取Django產生的原始SQL查詢,有幾個方法:
django.db.connection.queries: 包含目前資料庫連線執行的SQL查詢清單:
<code class="language-python"> from django.db import connection print(connection.queries)</code>
Querysets: 每個Queryset都有一個query屬性,用於儲存它將執行的SQL查詢:
<code class="language-python"> print(MyModel.objects.filter(name="my name").query)</code>
注意: Django的查詢輸出不是有效的SQL。資料庫適配器會單獨插入參數,防止在沒有適當驗證的情況下直接執行。
要重置Django追蹤的查詢列表,請使用reset_queries函數:
<code class="language-python">from django.db import reset_queries from django.db import connection reset_queries() # 在此处运行您的查询 print(connection.queries) >>> []</code>
以上是如何在 Django 中查看和管理原始 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!