„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich die von Django ausgeführten SQL-Abfragen überprüfen?

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

Veröffentlicht am 11.11.2024
Durchsuche:915

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 Datenbankverbindungen
kann über django.db.connection.queries auf die SQL-Abfrageliste zugreifen:

from django.db import connection
print(connection.queries)

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

print(MyModel.objects.filter(name="my name").query)

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

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

Senden Sie daher die Abfrageausgabe 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:

aus django.db import reset_queries von django.db Importverbindung reset_queries() #Führen Sie Ihre Abfrage aus print(connection.queries) >>> []
            
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3