Oft will man schnell mal wissen, was Djangos DB-Api so im Hintergrund treibt, sprich: Welches SQL-Statement wird abgesetzt.
Es gibt viele Apps die das übernehmen, der letzte Schrei derzeit ist Rob Hudsons Django Debug Toolbar. Der Nachteil ist, dass die Ausgabe zumeist im Template stattfindet. Im Quellcode direkt gehts aber auch:
>>> q = Entry.objects.values('id')
>>> print q.query.as_sql()
('SELECT "weblog_entry"."id" FROM "weblog_entry" ORDER BY "weblog_entry"."published" DESC', ())
Die Ausgabe erfolgt dann im Terminal bzw. im Logfile des Webservers. Neat! :-)
Martin Geber Sept. 12, 2008
Das ist ein interessanter Ansatz. Mit Python's logging konnte man sich das ganze auch nett ablegen für spätere Analysen.
Danke für den Tipp.
Cheers.
Toke Sept. 12, 2008
@MARTIN G. probier mal django-logging aus. Nettes Projekt. Zum reinen query-gucken ist natürlich q.query.as_sql() ausreichend.
Martin Geber Oct. 28, 2008
Danke für diesen Tipp Toke!
Sieht wirklich sehr nett aus.