0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简述Django查询生成原始SQL查询的3种方法

马哥Linux运维 来源:Python运维技术 作者:Python运维技术 2021-06-04 16:36 次阅读

我们使用Django ORM使查询数据库变得非常容易,但是如果我们知道幕后发生了什么或对某些Django查询执行了什么SQL查询,对我们提升查询性能帮助会非常的大,以下是一些有用的方法,能帮助我们了解幕后的SQL语句是什么。

1.使用queryset的查询属性

这是在Django中查找原始SQL查询的最简单方法。

》》》queryset = Organization.objects.all()》》》print(queryset.query) Output:SELECT “app_organization”。“id”, “app_organization”。“name”, “app_organization”。“created”,“app_organization”。“updated”“ FROM ”app_organization“》》》str(queryset.query)Output:‘SELECT ”app_organization“。”id“, ”app_organization“。”name“, ”app_organization“。”created“, ”app_organization“。”updated“ FROM ”app_organization“’

2.Django connection

这种方法比前一种方法提供的信息更多,因为我们可以找到原始SQL语句以及执行该语句所需的时间(以秒为单位)。 需要确保在settings.py文件中将此设置为DEBUG = True。

》》》from django.db import connection,reset_queries》》》Organization.objects.all()》》》connection.queriesOutput:[{‘sql’: ‘SELECT ”app_organization“。”id“, ”app_organization“。”name“, ”app_organization“。”created“, ”app_organization“。”updated“ FROM ”app_organization“ LIMIT 21’,‘time’: ‘0.001’}]》》》reset_queries()Output:[]

注意:reset_queries()可随时用于手动清除查询列表。

3.Django调试工具栏 Django Debug Toolbar是一组可配置的面板,显示有关当前请求/响应的各种调试信息,单击该工具时,将显示有关面板内容的更多详细信息,包括所有SQL查询。

要在django项目中设置此工具栏,首先需要安装:

pip install django-debug-toolbar

然后在settings.py文件中设置DEBUG = True。

将“ debug_toolbar”添加到INSTALLED_APPS设置中。

INSTALLED_APPS = [ ‘debug_toolbar’,]

将调试工具栏的URL添加到项目的URLconf中。

import debug_toolbarfrom django.conf import settingsfrom django.urls import include, pathurlpatterns = [ 。。。 path(‘__debug__/’, include(debug_toolbar.urls)),]

调试工具栏主要在中间件中实现,应尽可能早地放在列表中。在settings.py模块中启用它,如下所示:

MIDDLEWARE = [# 。。。 ‘debug_toolbar.middleware.DebugToolbarMiddleware’,# 。。。]

限制访问的IP地址,在INTERNAL_IPS设置的IP访问,才会显示“调试工具栏”。例如:对于本地开发,必须在INTERNAL_IPS中添加“ 127.0.0.1”。

INTERNAL_IPS = [# 。。。 ‘127.0.0.1’,# 。。。]

文章转载:Python运维技术

(版权归原作者所有,侵删)

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IP
    IP
    +关注

    关注

    5

    文章

    1710

    浏览量

    149626
  • SQL
    SQL
    +关注

    关注

    1

    文章

    766

    浏览量

    44165
  • URL
    URL
    +关注

    关注

    0

    文章

    139

    浏览量

    15367
  • Django
    +关注

    关注

    0

    文章

    44

    浏览量

    10396

原文标题:为Django查询生成原始SQL查询的3种方法

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    浅谈SQL优化小技巧

    存储在缓存中的数据; (3)未命中缓存后,MySQL通过关键字将SQL语句进行解析,并生成一颗对应的解析树,MySQL解析器将使用MySQL语法进行验证和解析。 例如,验证是否使用了错误的关键字,或者关键字的使用是否正确; (4
    的头像 发表于 12-25 09:59 473次阅读

    这些ipv6公网地址查询方法,一定要知道!

    ipv6公网地址查询可通过多种方法实现,包括使用命令行工具(如Windows的ipconfig、Linux和macOS的ifconfig或ipaddrshow),利用在线查询网站和浏览器插件,登录
    的头像 发表于 12-10 13:37 633次阅读

    SQL与NoSQL的区别

    景。 SQL数据库 SQL数据库,也称为关系型数据库管理系统(RDBMS),是一基于关系模型的数据库。它使用表格、行和列来组织数据,并通过SQL语言进行数据的
    的头像 发表于 11-19 10:15 179次阅读

    色环电阻查询器的使用方法

    咱先瞅瞅这产品是啥样儿的。色环电阻查询器呢,是个挺简洁还高效的家伙,专门用来认色环电阻器的阻值。一般来讲,它有个放电阻器的小凹槽,还有个显示屏,能很快地把电阻数值和误差范围给咱显示出来。大多数这
    的头像 发表于 11-15 13:56 321次阅读

    查询声卡芯片 PCM2902C 显示无法查询到芯片

    我们使用了PCM2902CDBR芯片,有以下两个问题1.有几块板子在查询声卡芯片时,查询不到声卡芯片,查询记录可以见附件。12晶振时ok的,我们使用的usb2.0 D+ D-也是连通的。请问
    发表于 10-09 09:16

    根据ip地址查网页怎么查询

    一、通过命令提示符查询查网页(Windows系统) ①按“Win+R”键,打开运营窗口。 根据ip地址查网页怎么查询? ②输入“cmd”+“回车”,打开命令提示符窗口。 ③输入“nslookup
    的头像 发表于 09-29 10:56 1009次阅读
    根据ip地址查网页怎么<b class='flag-5'>查询</b>?

    常见的IP地址查询技术

    1. 在线IP地址查询工具   在线IP地址查询服务是获取IP地址信息的最用户友好方法。像IP数据云IP地址查询这样的网页提供直观的界面,用户只需输入IP地址即可获得详细信息。这些工具
    的头像 发表于 09-26 10:21 361次阅读
    常见的IP地址<b class='flag-5'>查询</b>技术

    大数据从业者必知必会的Hive SQL调优技巧

    大数据从业者必知必会的Hive SQL调优技巧 摘要 :在大数据领域中,Hive SQL被广泛应用于数据仓库的数据查询和分析。然而,由于数据量庞大和复杂的查询需求,Hive
    的头像 发表于 09-24 13:30 278次阅读

    如何利用python和API查询IP地址?

    在Python中,直接查询IP地址的地理位置或详细信息(如所属国家、城市等)通常需要依赖外部API服务,因为Python标准库本身不提供直接查询IP地址地理位置的功能。以下是一个使用requests
    发表于 08-28 11:55

    华纳云:Ubuntu18.04系统如何查询域名的具体dns信息

    在Ubuntu18.04系统中查询域名的DNS信息是一项常见且重要的操作。本文将介绍几种实用的方法,帮助用户快速获取所需的DNS信息。 使用dig命令 dig命令是一个强大的DNS查询工具。在终端中
    的头像 发表于 08-08 15:50 443次阅读

    聚合物锂电池型号表及容量查询

    聚合物锂电池型号表及容量查询
    发表于 06-22 10:55 0次下载

    ClickHouse内幕(3)基于索引的查询优化

    ClickHouse基于索引的查询算子优化方式。 在整个查询计划中Sort、Distinct、聚合这3个算子相比其他算子比如:过滤、projection等有如下几个特点:1.算子需要再内存中保存状态
    的头像 发表于 06-11 10:46 1039次阅读
    ClickHouse内幕(<b class='flag-5'>3</b>)基于索引的<b class='flag-5'>查询</b>优化

    linux下查询进程占用的内存方法有哪些?

    linux下查询进程占用的内存方法
    发表于 04-08 06:03

    查询SQL在mysql内部是如何执行?

    我们知道在mySQL客户端,输入一条查询SQL,然后看到返回查询的结果。这条查询语句在 MySQL 内部到底是如何执行的呢?本文跟大家探讨一下哈,我们先来看下MySQL基本架构~
    的头像 发表于 01-22 14:53 581次阅读
    <b class='flag-5'>查询</b><b class='flag-5'>SQL</b>在mysql内部是如何执行?

    labview与sql数据库连接5种方法

    连接LabVIEW和SQL数据库是一常见的需求,可以通过多种方法实现。本文将介绍五连接LabVIEW和SQL数据库的
    的头像 发表于 01-07 16:01 4955次阅读