Django中怎么查看ORM执行的SQL语句
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,本篇文章给大家分享的是有关Django中怎么查看ORM执行的SQL语句,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Django ORM
千家信息网最后更新 2025年12月04日Django中怎么查看ORM执行的SQL语句
本篇文章给大家分享的是有关Django中怎么查看ORM执行的SQL语句,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
Django ORM对数据库操作的封装相当完善,日常大部分数据库操作都可以通过ORM实现。
但django将查询过程隐藏在了后台,这在开发时可能会略显晦涩,并且使用方式不当还会造成开销过大。
那么如何查看django何时执行了什么sql语句呢?答案是使用Logging。
先直接上方法,在settings.py中加入LOGGING选项,调整logging等级为DEBUG即可:
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'simple': { 'format': '[%(asctime)s] %(message)s' }, }, 'handlers': { 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'simple' }, }, 'loggers': { 'django': { 'handlers': ['console'], 'level': 'DEBUG', }, },}然后启动runserver,浏览需要访问数据库的页面,在shell中即可看见相关日志,如下:
[2018-04-21 21:09:14,676] (0.002) SELECT `blog_article`.`id`, `blog_article`.`title`, `blog_article`.`cover`, `blog_article`.`content`, `blog_article`.`pub_date`, `blog_article`.`category_id`, `blog_article`.`views`, `blog_category`.`id`, `blog_category`.`name` FROM `blog_article` INNER JOIN `blog_category` ON (`blog_article`.`category_id` = `blog_category`.`id`) WHERE `blog_article`.`pub_date` < '2018-04-21 13:09:14.601856' ORDER BY `blog_article`.`pub_date` DESC LIMIT 10; args=('2018-04-21 13:09:14.601856',)[2018-04-21 21:09:14,678] (0.000) SELECT (`blog_article_topics`.`article_id`) AS `_prefetch_related_val_article_id`, `blog_topic`.`id`, `blog_topic`.`name`, `blog_topic`.`number` FROM `blog_topic` INNER JOIN `blog_article_topics` ON (`blog_topic`.`id` = `blog_article_topics`.`topic_id`) WHERE `blog_article_topics`.`article_id` IN (3, 4, 5, 6, 7, 8, 9, 10, 11, 12) ORDER BY `blog_topic`.`number` ASC; args=(3, 4, 5, 6, 7, 8, 9, 10, 11, 12)[2018-04-21 21:09:14,708] "GET / HTTP/1.1" 200 22325上面打印出的日志是我的博客首页获取前十篇文章时所执行的部分SQL语句,其对应的QuerySet为
Article.objects.filter(pub_date__lt=timezone.now())[:10] \.defer('author', 'category__number') \.select_related('category') \.prefetch_related('topics')通过Logging不仅可以查看SQL语句,还可以由此知道django何时执行了SQL。在某些情况下我们可以通过这种方式判断,后台是否重复执行了SQL语句,便于指导数据库访问优化。
Django使用Python的内建的logging模块执行系统日志记录
以上就是Django中怎么查看ORM执行的SQL语句,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
语句
数据
数据库
日志
篇文章
可以通过
后台
方式
更多
知识
部分
不当
实用
晦涩
博客
大部分
就是
工作会
开销
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
如何分析麻醉数据库
电脑桌面整软件开发
网络安全期的最新通告
无法启动acdsee数据库
国家网络安全预防措施
国内专业的服务器主动管理
mysql数据库不能远程访问
网络安全高峰论坛
连接数据库线程关闭
魔兽台服 服务器
浪潮集团软件开发部
办公软件开发包
网络安全卫士 共筑安全堤坝
思派数据库
SSH修改数据库用户名
软件开发用家庭版可以吗
qt软件开发工程师工资深圳
网络安全政策标准
安全合规软件开发管理
国家网络安全经费预算规定
嵌入式软件开发 跳槽
提升网络技术的通道
机器人和网络安全
德邦软件开发工资待遇
中根网华人族谱总数据库
湖南软件开发免费培训
mapreduce导入数据库
python查询数据库中信息
儿童网络安全海报手绘图片
计算机网络技术主要学课程