クエリ実行中に Django が実行している SQL を表示する方法はありますか?
ベストアンサー1
ドキュメントのFAQを参照してください: "Django が実行している生の SQL クエリを確認するにはどうすればよいでしょうか?「
django.db.connection.queries
SQL クエリのリストが含まれています:
from django.db import connection
print(connection.queries)
クエリセットには、query
属性実行するクエリを含む:
print(MyModel.objects.filter(name="my name").query)
次の理由により、クエリの出力は有効な SQL ではないことに注意してください。
「Django は実際にはパラメータを補間しません。クエリとパラメータをデータベース アダプタに別々に送信し、適切な操作を実行します。」
Djangoのバグレポートより#17741。
そのため、クエリ出力をデータベースに直接送信しないでください。
たとえば、特定の期間に実行されているクエリの数を確認するためにクエリをリセットする必要がある場合は、reset_queries
次を使用できますdjango.db
。
from django.db import reset_queries
from django.db import connection
reset_queries()
# Run your query here
print(connection.queries)
>>> []