回答

收藏

如何查看Django正在运行的原始SQL查询?

技术问答 技术问答 158 人阅读 | 0 人回复 | 2023-09-13

有没有办法在执行查询时显示执行查询?Django正在运行的SQL?3 i! J& m. u! _7 S
                                                               
! }- V4 z$ l: h0 g4 H: o8 p    解决方案:                                                               
( G# C. `" [- s; ^9 t" x/ Z  D2 k                                                                请参阅文档FAQ:“如何查看Django正在运行的原始SQL查询? ”
! |& Z) r1 Y2 C# cdjango.db.connection.queries 包含SQL查询列表:
  R, g  U3 e: ~' Q5 Q* ofrom django.db import connectionprint(connection.queries)查询集还包括要执行的查询。query属性:
/ E9 I6 c! U( x, i$ S; U. Jprint(MyModel.objects.filter(name="my name").query)请注意,查询输出不有效SQL,因为:
- q" [$ L1 l: t5 _% V+ |. O9 ~“ Django实际上,从未插入过参数:它将查询和参数分别发送到数据库适配器,后者进行适当的操作。
& S( J- w4 V% j/ X$ k# p8 x% o来自Django错误报告#17741。6 `+ c6 F6 o+ {7 C
因此,您不应直接将查询输出发送到数据库。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则