首页 > 数据库 >Django 在终端打印 ORM 对应的 SQL 语句的两种方式

Django 在终端打印 ORM 对应的 SQL 语句的两种方式

时间:2023-07-10 21:57:03浏览次数:47  
标签:语句 queryset Django ORM SQL query

前言

在使用 Django 框架开发项目中,如果想知道使用 ORM 语句操作数据库转换对应的 SQL 语句时,那么可以使用两种方式来实现

方法一

在 Django 项目的 settings.py 文件中,找到日志配置LOGGING,没有找到日志配置项的直接复制粘贴如下代码即可

配置好之后,重新运行项目,再执行任何对数据库进行操作的 ORM 语句时,会自动将 Django 执行的原生 SQL 语句打印到 Pycharm 终端上

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

方法二

直接在我们想查看SQL的地方,通过对象.query,使用print语句即可查看ORM对应的SQL语句了;适合临时查看场景,具体操作如下

from libs.test_app.models import BookInfo

book_queryset = BookInfo.objects.filter(id__gt=2)

print(book_queryset .query)    # 直接打印book_queryset 对应的sql语句

注意:

.query方法,一定是一个查询集对象,否者不能使用

标签:语句,queryset,Django,ORM,SQL,query
From: https://www.cnblogs.com/Durant0420/p/17542450.html

相关文章

  • 2.mysql的索引
    一、索引概述索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据。对于索引,会保存在额外的文件中。索引是帮助MySQL高效获取数据的排好序的数据结构。平时代码中为了方便查询,我们使用的哈希表、链表、二叉树等数据结构存储相关数据,使用二分、二叉搜......
  • python之数据库MySQL
    数据的演变史#以ATM为例#1.把数据存放在单个文件里面 1.文件名不规范2.数据格式也不规范 kevin|123kevin$123kevin*123#2.软件目录开发规范 db文件夹里 #当数据量多的时候,会产生很多的文件,多次读取文件会占用大量的资源#3.数据库阶段 把数据......
  • MYSQL--数据取整的方法
    在MySQL中,我们经常会需要取整数。本篇文章将详细介绍MySQL中取整数的多种方法。一、使用ROUND函数ROUND函数用于将一个数四舍五入到指定的小数位数。如果小数位数为0,则返回整数部分。 为小数位数。SELECTROUND(3.14159,0);--结果为3SELECTROUND(3.14159,1);--结果为......
  • sql记录:FIELD函数解决mysql中in传值顺序问题
    1.问题描述in查询的结果传值顺序与结果显示顺序不一致,默认对id进行排序显示结果,eg:如果是5号用户先点赞,1号用户后点赞,但是查询结果是1号用户显示在5号用户的前面,也就是说导致结果1号用户先点赞,5号用户后点赞,需要使用FIELD函数解决2.问题解决SELECTid,phone,password,nick_n......
  • 数据库mysql
    数据的演变史'''以ATM为例'''1.把数据存在了文件中文件名:user.txt、userinfo.txt数据格式:kevin|123、kevin@123、kevin!1232.软件开发目录规范db文件夹#专门用来存储数据文件,但是,当数据文件较多的时候,占用过多的资源,也会产生很多的文件......
  • 碎片对MySQL的影响
    常见的碎片类型·SegmentFragmentation:段产生了碎片;没有按照数据的顺序存储,或者在数据页之间有空的页·TablespaceFragmentation:表空间中存储的是非连续的文件系统块·TableFragmentation:表中数据不是按照主键的顺序存储的。或者表的页有大量空闲空间。比如,表定义成了堆......
  • openGauss学习笔记-05 openGauss gsql连接与使用方法
    openGauss学习笔记-05openGaussgsql连接与使用方法openGauss提供了在命令行下运行的数据库连接工具gsql。此工具除了具备操作数据库的基本功能,还提供了若干高级特性,便于用户使用。本节主要介绍如何使用gsql本地连接数据库。您需要提供数据库的名称以及数据库主节点的端口号。5.......
  • MySQL5.6.x二进制包升级到5.7.x
    #!/bin/bash#mysql数据库用户名myuser="root"#mysql数据库密码mypwd="123456"#数据库备份路径dbbakdir="/data/dbbak"#数据库目录datadir="/data/mysql"#系统mysql用户sysmysqluser="mysql"#系统mysql组sysmysqlgroup="mysql"#my......
  • SQL简单使用指南
    SQL简单使用指南SQL(结构化查询语言)是一种用于管理和操作关系型数据库的标准化语言。数据库概述数据库是用于存储和组织数据的结构。它由表(表格)组成,每个表都包含多个列和行。以下是SQL中最常用的一些关键术语:表(Table):数据库中的基本组织单位,它由列和行组成。列(Column):表中的......
  • maven中sqljdbc4.jar无法下载的正确解决办法
     在pom.xml中添加如下依赖是无法导入sqljdbc4.jar包的,maven会报错,找不到依赖,无法下载 我们上maven仓库能够发现有这么一句提示 thisartifactislocatedat Clojars repository(https://clojars.org/repo/)这个jar包是在Clojars仓库里面,我们需要在pom.xml中加上如下......