Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich von Django ausgeführte SQL-Abfragen anzeigen?

Wie kann ich von Django ausgeführte SQL-Abfragen anzeigen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-04 15:02:23993Durchsuche

How to View SQL Queries Executed by Django?

Fehlerbehebung bei Djangos SQL-Abfragen

Diese Frage untersucht Methoden zum Anzeigen der von Django während Abfragevorgängen ausgeführten SQL-Abfragen.

Lösung:

Laut Häufig gestellte Fragen zur Django-Dokumentation: Django bietet zwei Optionen zum Überprüfen von SQL-Abfragen:

  • django.db.connection.queries: Dieses Attribut enthält eine Liste aller von Django ausgeführten SQL-Abfragen. Es kann wie folgt aufgerufen werden:
<code class="python">from django.db import connection
print(connection.queries)</code>
  • Queryset.query: Jedes Queryset-Objekt verfügt über ein Abfrageattribut, das die auszuführende Abfrage enthält. Hier ist ein Beispiel:
<code class="python">print(MyModel.objects.filter(name="my name").query)</code>

Hinweis: Die von diesen Methoden angezeigte Abfrageausgabe ist keine gültige SQL-Syntax. Django interpoliert niemals Abfrageparameter, sondern sendet die Abfrage und die Parameter stattdessen separat zur Ausführung an den Datenbankadapter, um die Datenintegrität sicherzustellen. Führen Sie die Abfrageausgabe daher nicht direkt in einer Datenbank aus.

Um die Abfrageliste zurückzusetzen, um beispielsweise die Anzahl der innerhalb eines bestimmten Zeitraums ausgeführten Abfragen zu überwachen, verwenden Sie reset_queries von django.db:

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

reset_queries()
# Execute your query here
print(connection.queries)  # Returns an empty list</code>

Das obige ist der detaillierte Inhalt vonWie kann ich von Django ausgeführte SQL-Abfragen anzeigen?. 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