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

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

DDD
DDDOriginal
2024-11-04 06:53:30520Durchsuche

How Can I View SQL Queries Performed by Django?

Anzeigen von von Django durchgeführten SQL-Abfragen

Beim Ausführen von Abfragen führt Django SQL-Befehle aus, die für Entwickler oft nicht sichtbar sind. Es gibt jedoch Methoden, um diese Abfragen zu beobachten und ihren Inhalt zu überprüfen.

Auf Abfragelisten zugreifen

Django speichert eine Liste aller ausgeführten Abfragen in django.db.connection. Abfragen. So zeigen Sie diese Abfragen an:

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

Abfrage aus Abfragesätzen abrufen

Abfragesätze, die Datenbankabfragen darstellen, verfügen über ein Abfrageattribut, das das auszuführende Roh-SQL enthält:

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

Hinweis zu Ausgabebeschränkungen

Es ist wichtig zu beachten, dass das angezeigte SQL möglicherweise nicht syntaktisch gültig ist, da:

"Django interpoliert eigentlich nie die Parameter: Er sendet die Abfrage und die Parameter getrennt an den Datenbankadapter, der die entsprechenden Operationen ausführt.“

Das bedeutet, dass die angezeigte Abfrage nicht direkt auf einer Datenbank ausgeführt werden kann.

Abfragen zurücksetzen

Wenn Sie die Abfrageliste zurücksetzen müssen, um beispielsweise Abfragen zu zählen, die innerhalb eines bestimmten Zeitraums ausgeführt wurden, verwenden Sie reset_queries von django.db:

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

reset_queries()
# Run your query here
print(connection.queries)
>>> []</code>

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