1. ホーム
  2. sql

[解決済み] Django が実行している生の SQL クエリを見るにはどうしたらいいですか?

2022-03-26 07:35:04

質問

クエリを実行中に Django が実行している SQL を表示する方法はありますか?

どのように解決するのですか?

docs 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

reset_queries()
print(connection.queries)
>>> []