Django で SQL クエリを検査する方法
クエリの実行時に Django が実行する SQL ステートメントを知りたいですか?答えは簡単です:
1. ドキュメントから答えを見つけてください
Django ドキュメントの FAQ セクションに簡単な答えがあります:
2データベースにアクセスする Connections
は django.db.connection.queries を通じて SQL にアクセスできます。クエリリスト:
from django.db import connection
print(connection.queries)
3. Queryset オブジェクトの表示
Queryset オブジェクトには、実行されるクエリを含むクエリ属性があります:
print(MyModel.objects.filter(name="my name").query)
注: によって出力されるクエリは有効な SQL ではありません。その理由は次のとおりです:
「Django は実際にはパラメーターを補間しません。Django はクエリとパラメーターを別々にデータベース アダプターに送信し、適切な操作を実行します。」 (Django バグ レポート #17741 より)
したがって、クエリ出力をデータベースに直接送信しないでください。
クエリのリセット 特定の期間内に実行されたクエリの数を確認するなど、クエリをリセットする必要がある場合は、 django.db.reset_queries を使用できます。 &&&]
django.db から import restart_queries
django.db インポート接続から
リセット_クエリ()
#クエリを実行する
print(接続.クエリ)
>>> []
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3