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

Wie kann ich die von Django ausgeführten Raw-SQL-Abfragen anzeigen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-01 21:19:02671Durchsuche

How Do I View the Raw SQL Queries Executed by Django?

Sichtbarkeit von Django-SQL-Abfragen

Um die von Django ausgeführten Roh-SQL-Abfragen zu beobachten, können Sie sich die FAQ der Django-Dokumentation zu dieser speziellen Frage ansehen .

Verwendung von django.db.connection.queries

Eine Methode besteht darin, das django.db.connection.queries-Attribut zu verwenden, das eine Liste der ausgeführten SQL-Abfragen verwaltet . Um sie anzuzeigen:

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

Queryset-Abfragen prüfen

Querysets besitzen auch ein Abfrageattribut, das die auszuführende Abfrage enthält. So greifen Sie darauf zu:

<code class="python">from django.db import models
print(MyModel.objects.filter(name="my name").query)</code>

Wichtiger Hinweis

Es ist wichtig zu beachten, dass die Ausgabe der Abfrage kein gültiges SQL ist. Dies liegt daran:

„Django interpoliert die Parameter nie wirklich: Es sendet die Abfrage und die Parameter separat an den Datenbankadapter, der die entsprechenden Vorgänge ausführt.“

Abfragen zurücksetzen

Wenn Sie die Liste der ausgeführten Abfragen zurücksetzen müssen, um beispielsweise die Anzahl der Abfragen innerhalb eines bestimmten Zeitraums zu ermitteln, verwenden Sie die Funktion „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)</code>

Das obige ist der detaillierte Inhalt vonWie kann ich die von Django ausgeführten Raw-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