Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich die von Django ausgeführten SQL-Abfragen überprüfen?

Wie kann ich die von Django ausgeführten SQL-Abfragen überprüfen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 16:59:03733Durchsuche

How Can I Inspect the SQL Queries Executed by Django?

So prüfen Sie SQL-Abfragen in Django

Möchten Sie wissen, welche SQL-Anweisungen Django beim Ausführen einer Abfrage ausführt? Die Antwort ist einfach:

1. Finden Sie die Antwort in der Dokumentation
Der FAQ-Bereich der Django-Dokumentation bietet eine einfache Antwort:

2 . Zugriff auf die Datenbankverbindung
kann über django.db.connection.queries auf die SQL-Abfrageliste zugreifen:

<code class="python">from django.db import connection
print(connection.queries)</code>

3. Sehen Sie sich das Queryset-Objekt an
Das Queryset-Objekt verfügt über ein Abfrageattribut, das die auszuführende Abfrage enthält:

<code class="python">print(MyModel.objects.filter(name="my name").query)</code>

Hinweis: Die von ausgegebene Abfrage ist kein gültiges SQL. Der Grund ist:

„Django interpoliert eigentlich nie Parameter: Es sendet die Abfrage und Parameter separat an den Datenbankadapter, der die entsprechenden Operationen ausführt.“

(Entnommen aus Django-Fehlerbericht Nr. 17741 )

Senden Sie die Abfrageausgabe daher nicht direkt an die Datenbank.

Abfragen zurücksetzen
Wenn Sie eine Abfrage zurücksetzen müssen, um beispielsweise die Anzahl der in einem bestimmten Zeitraum ausgeführten Abfragen anzuzeigen, können Sie django.db.reset_queries verwenden:

<code class="python">from django.db import reset_queries
from django.db import connection

reset_queries()
# 运行你的查询
print(connection.queries)
>>> []</code>

Das obige ist der detaillierte Inhalt vonWie kann ich die von Django ausgeführten SQL-Abfragen überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn