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命令行交互提示符的方法
Jan 14 Python
Python返回真假值(True or False)小技巧
Apr 10 Python
python 根据正则表达式提取指定的内容实例详解
Dec 04 Python
python爬虫之模拟登陆csdn的实例代码
May 18 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
使用Python实现图像标记点的坐标输出功能
Aug 14 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
浅谈keras 模型用于预测时的注意事项
Jun 27 Python
Python 使用dict实现switch的操作
Apr 07 Python
Django集成富文本编辑器summernote的实现步骤
May 31 Python
Python基础之条件语句详解
Jun 16 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自定义的格式化时间示例代码
2013/12/05 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
解密效果
2006/06/23 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
Python3实现生成随机密码的方法
2014/08/23 Python
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
Python内建模块struct实例详解
2018/02/02 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
python判断正负数方式
2020/06/03 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
爱普生美国官网:Epson美国
2018/11/05 全球购物
夜大毕业生自我评价分享
2013/11/10 职场文书
后勤工作职责
2013/12/22 职场文书
科级干部考察材料
2014/02/15 职场文书
巡警年度自我鉴定
2014/02/21 职场文书
企业承诺书怎么写
2014/05/24 职场文书
学雷锋的心得体会
2014/09/04 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
2014年导购员工作总结
2014/11/18 职场文书
新学期感想
2015/08/10 职场文书
浅析JavaScript中的变量提升
2022/06/01 Javascript