Mit django.db.- Verbindung.Abfragen
Habe ich ein Python - /Django-Anwendung, die läuft eine ganze Menge von SQL-Anweisungen. Für debugging-Zwecke, ich dachte, ich sollte das erstellen einer einfachen Ansicht für mich, die nur listet alle SQL-Anweisungen, die ausgeführt wurden.
Laut der Dokumentation dieser code sollte genug zu tun:
from django.db import connection
connection.queries
solange DEBUG Wahr ist.
Dies ist jedoch nicht dass Sie mir irgendetwas. DEBUG ist sicherlich auf True gesetzt. In welchem Kontext ist diese Verbindung.gespeicherte Abfragen? Ich meine, ich sollte in der Lage sein zum ausführen einer Seite führt eine Menge von SQL-Anweisungen, und dann einfach Umschalten auf die http://myserver/sql anzeigen, die ich angelegt und sehen diesen SQL-Anweisungen dort, oder? Mit der gleichen browser-Sitzung natürlich ...
Habe ich überprüfen, ob der db.reset_queries() wurde ausgeführt, die irgendwo in den code, erscheint es nicht.
Irgendwelche Ideen, warum die Verbindung.Abfragen ist immer leer?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ben ist richtig, dass Sie nur die Abfragen aus dem aktuellen Prozess. Sie können es verwenden, innerhalb der gleichen Ansicht, oder in der Konsole, aber nicht zwischen den Ansichten.
Der beste Weg, um zu sehen, welche queries ausgeführt werden, die in Ihren Ansichten ist die Verwendung der Django-debug-toolbar.
@Daniel Roseman, es ist eine gute Idee, aber wenn du wissen willst, sql-Abfragen aus der box:
installieren django-Befehls-Erweiterungen und fügen Sie es auf installiert apps.
es werden viele utils-Befehle in Ihrem Projekt, einer von Ihnen:
Beispiel:
python manage.py debugsqlshell
Ich denke, dass diese Abfragen im Speicher gespeichert werden, und nicht zwischen Prozessen, so dass Sie nur noch Zugriff auf die Anfragen, die der aktuelle Prozess.
Wenn ich versuche den code, den Sie eingefügt in eine
./manage.py shell
session sehe ich nur Abfragen habe ich bisher in dieser shell-Sitzung.Wenn ich pass
queries
aus einen Blick in den template-Kontext und zeigen, dass es in der Vorlage, sehe ich nur die Abfragen in dieser Ansicht. Dies ist mit dem dev server, obwohl.Nehme ich an—, aber noch nicht getestet—, dass, wenn Sie dies in einer Umgebung, wo Sie haben, ein Prozess für mehrere Anfragen, würden Sie sehen, mehr von Abfragen gespeichert, die jede Anforderung.
Das ist, was fixiert es für mich, die ich verwendet habe:
um die Abfrage zu zählen.