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

我们使用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运维技术
(版权归原作者所有,侵删)


电驱系统热管理现状
【晚间3分钟】阿里收购先声互联;世界首台光量子计算机诞生;英特尔处理器出现8个新漏洞
新闻 | 华为助力贵州移动发布SPN切片专线原子能力产品,赋能千行百业数字化转型
Q345A、Q345B、Q345C、Q345D、Q345E钢材性能有哪些区别
AI时代,机器人的到来怎样的人才会失业
简述Django查询生成原始SQL查询的3种方法
晶体变换器的印刷电路基板的制作
如何解决三菱Q系列PLC连接触摸屏与液晶显示器数据的不一致
Intersil推出业内准确度最高、功耗最低的RGB数字式光传感器,提升显示屏观看体验
上海铭控MD-G501系列无线蓝牙压力变送器有何特点?
外媒:华为削减富士康订单!
恩智浦推出业界首款具备双通道调制解调器的AISG收发器
移动DR的用途及特点
微软发布x64版ARM模拟器
润诚达打造了一套“桩-车-电-云”的全栈式充电解决方案
《英雄萨姆VR》新加入合作模式
Potentia蓝海完美适配需求响应收益新模式(一)
外媒评测特斯拉新品电池4680,15分钟充电可至80%续航
PT2262/PT2272无线防盗报警器的制作,Wireless burglar alarm
电动汽车系统中发动机与变速箱的联系