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 相关文章推荐
matplotlib中legend位置调整解析
Dec 19 Python
Python实现邮件的批量发送的示例代码
Jan 23 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
Aug 16 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
Linux 修改Python命令的方法示例
Dec 03 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
python网络编程 使用UDP、TCP协议收发信息详解
Aug 29 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
python 实现多维数组(array)排序
Feb 28 Python
python游戏开发的五个案例分享
Mar 09 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
python pyg2plot的原理知识点总结
Feb 28 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字符串替换函数substr_replace()用法实例
2015/03/17 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
php实现微信支付之企业付款
2018/05/30 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
简单的Python的curses库使用教程
2015/04/11 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
python程序变成软件的实操方法
2019/06/24 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
python爬虫工具例举说明
2020/11/30 Python
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
Joules美国官网:出色的英国风格
2017/10/30 全球购物
大一期末自我鉴定
2013/12/13 职场文书
超市客服工作职责
2014/06/11 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
今日说法观后感
2015/06/08 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
新手必备Python开发环境搭建教程
2021/05/28 Python
Python内置数据类型中的集合详解
2022/03/18 Python
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android