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

 更新时间:2019年08月29日 09:26:05   作者:pushiqiang  
今天小编就为大家分享一篇Django shell调试models输出的SQL语句方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在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网络爬虫实例讲解

    这篇文章主要为大家详细介绍了Python网络爬虫实例,爬虫的定义、主要框架等基础概念,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • Python定时任务框架APScheduler原理及常用代码

    Python定时任务框架APScheduler原理及常用代码

    这篇文章主要介绍了Python定时任务框架APScheduler原理及常用代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Python实现带图形界面的炸金花游戏(升级版)

    Python实现带图形界面的炸金花游戏(升级版)

    诈金花又叫三张牌,是在全国广泛流传的一种民间多人纸牌游戏,它具有独特的比牌规则。本文将通过Python语言实现升级版的带图形界面的诈金花游戏,需要的可以参考一下
    2022-12-12
  • Python保留指定位数小数的5种方法总结

    Python保留指定位数小数的5种方法总结

    很多小伙伴在学习python的时候可能会遇到对数据进行格式化输出的需求,其中最常见的需求为保留几位小数,这篇文章主要给大家介绍了关于Python保留指定位数小数的5种方法,需要的朋友可以参考下
    2023-08-08
  • 基于opencv和pillow实现人脸识别系统(附demo)

    基于opencv和pillow实现人脸识别系统(附demo)

    人脸识别就是一个程序能识别给定图像或视频中的人脸,本文主要介绍了opencv和pillow实现人脸识别系统,本文不涉及分类器、训练识别器等算法原理,感兴趣的可以了解一下
    2021-11-11
  • 在Django中实现定时任务的多种方法

    在Django中实现定时任务的多种方法

    在 Django 项目中实现定时任务可以帮助自动化执行一些后台任务,如数据清理、定期报告生成等,以下是几种常见的实现方式,每种方法都有其独特的优势和适用场景,感兴趣的小伙伴跟着小编一起来看看吧
    2024-08-08
  • python基础之类方法和静态方法

    python基础之类方法和静态方法

    这篇文章主要介绍了python类方法和静态方法,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下
    2021-10-10
  • Tensorflow2.10使用BERT从文本中抽取答案实现详解

    Tensorflow2.10使用BERT从文本中抽取答案实现详解

    这篇文章主要为大家介绍了Tensorflow2.10使用BERT从文本中抽取答案实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Python如何解除一个装饰器

    Python如何解除一个装饰器

    这篇文章主要介绍了Python如何解除一个装饰器,帮助大家更好的理解和学习Python装饰器,感兴趣的朋友可以了解下
    2020-08-08
  • Python 带星号(* 或 **)的函数参数详解

    Python 带星号(* 或 **)的函数参数详解

    这篇文章主要介绍了Python 带星号(* 或 **)的函数参数详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论