Django shell调试models输出的SQL语句方法


Posted in Python onAugust 29, 2019

在settings.py里,配置如下logging:

LOGGING = {
 'version': 1,
 'disable_existing_loggers': False,
 'handlers': {
  'console':{
   'level':'DEBUG',
   'class':'logging.StreamHandler',
  },
 },
 'loggers': {
  'django.db.backends': {
   'handlers': ['console'],
   'propagate': True,
   'level':'DEBUG',
  },
 }
}

使用效果:

$ python manage.py shell
 
In [1]: from test.models import A
 
In [2]: A.objects.all()
(0.001) SELECT "app1_a"."id", "app1_a"."name" FROM "app1_a" LIMIT 21; args=()
[<A: A object>]

在shell命令行的环境下,可以使用 django-exension's shell_plus 命令并打开 --print-sql 选项。

python manage.py shell_plus --print-sql

>>> Author.objects.all()
SELECT "library_author"."id", "library_author"."name" FROM "library_author" LIMIT 21
Execution time: 0.001393s [Database: default]
<QuerySet [<Author: Author object>]>

django提供的内置记录器

django 在Django层次结构中的所有消息记录器。没有使用此名称发布消息,而是使用下面的记录器之一。

django.request 与请求处理相关的日志消息。5xx响应被提升为错误消息;4xx响应被提升为警告消息。

django.server 与由RunServer命令调用的服务器所接收的请求的处理相关的日志消息。HTTP 5XX响应被记录为错误消息,4XX响应被记录为警告消息,其他一切都被记录为INFO。

django.template 与模板呈现相关的日志消息

django.db.backends 有关代码与数据库交互的消息。例如,请求执行的每个应用程序级SQL语句都在调试级别记录到此记录器。

以上这篇Django shell调试models输出的SQL语句方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python切换hosts文件代码示例
Dec 31 Python
Python实现矩阵转置的方法分析
Nov 24 Python
MAC中PyCharm设置python3解释器
Dec 15 Python
Python实现发送与接收邮件的方法详解
Mar 28 Python
Python视频爬虫实现下载头条视频功能示例
May 07 Python
对numpy数据写入文件的方法讲解
Jul 09 Python
python控制nao机器人身体动作实例详解
Apr 29 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
django 2.2和mysql使用的常见问题
Jul 18 Python
Python搭建代理IP池实现存储IP的方法
Oct 27 Python
python实现人脸签到系统
Apr 13 Python
如何基于Python按行合并两个txt
Nov 03 Python
python实现文件的分割与合并
Aug 29 #Python
Python配置文件处理的方法教程
Aug 29 #Python
浅谈django url请求与数据库连接池的共享问题
Aug 29 #Python
python 进程的几种创建方式详解
Aug 29 #Python
python 列表推导式使用详解
Aug 29 #Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 #Python
解决Django连接db遇到的问题
Aug 29 #Python
You might like
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
PHP编程计算文件或数组中单词出现频率的方法
2017/05/22 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
二级域名转向类
2006/11/09 Javascript
form中限制文本字节数js代码
2007/06/10 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
Python中super()函数简介及用法分享
2016/07/11 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
TensorFlow实现模型评估
2018/09/07 Python
python实现人机五子棋
2020/03/25 Python
什么是Python中的顺序表
2020/06/02 Python
机电职业生涯规划书范文
2014/03/08 职场文书
医德考评自我评价
2014/09/14 职场文书
个人租房协议书样本
2014/10/01 职场文书
转正申请报告格式
2015/05/15 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android