自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

【Django】実行されるクエリ(SQL)を確認する【.query】

thumbnail

備忘録として。複雑なORMになった時、クエリを確認する時は、末尾に.query属性を使う。print文で出力できる。

print(Topic.objects.all().query)

#出力結果
SELECT "topic"."id", "topic"."comment" FROM "topic"

表示はされるものの、SQLが最適化されているわけではない点に注意。あくまでも挙動がおかしいときの確認用として。

【補足】生のSQLを実行する

出力した生のSQLを少しいじって実行させることもできる。SQLの末尾を示す;は不要。

Topic.objects.raw("SELECT * FROM topic")

SQLインジェクションには十分注意する。.raw()を使うのは最終手段と考えたほうが良いだろう。

スポンサーリンク

シェアボタン

Twitter LINEで送る Facebook はてなブログ