如何查看 Django ORM 执行的 SQL 语句
Django ORM对数据库操作的封装相当完善,日常大部分数据库操作都可以通过ORM实现。但django将查询过程隐藏在了后台,这在开发时可能会略显晦涩,并且使用方式不当还会造成开销过大。
那么如何查看django何时执行了什么sql语句呢?答案是使用Logging。
先直接上方法,在settings.py中加入LOGGING选项,调整logging等级为DEBUG即可:
然后启动runserver
,浏览需要访问数据库的页面,在shell中即可看见相关日志,如下:
上面打印出的日志是我的博客首页获取前十篇文章时所执行的部分SQL语句,其对应的QuerySet为
通过Logging
不仅可以查看SQL语句,还可以由此知道django何时执行了SQL。在某些情况下我们可以通过这种方式判断,后台是否重复执行了SQL语句,便于指导数据库访问优化。
Django使用Python的内建的logging模块执行系统日志记录。
本文首发于BigYoung小站http://www.bigyoung.cn
版权声明: 本文为 InfoQ 作者【Young先生】的原创文章。
原文链接:【http://xie.infoq.cn/article/431a761114531e785106b42f9】。未经作者许可,禁止转载。
评论