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

    文章

    1881

    浏览量

    156666
  • SQL
    SQL
    +关注

    关注

    1

    文章

    807

    浏览量

    46909
  • URL
    URL
    +关注

    关注

    0

    文章

    142

    浏览量

    16280
  • Django
    +关注

    关注

    0

    文章

    45

    浏览量

    10927

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NineData 2026年3月功能上新:支持飞书外部审批,增强慢查询分析与数据复制能力

    NineData智能数据管理平台2026年3月新功能发布,围绕数据库 DevOps、慢查询分析、数据归档清理与数据复制持续升级:新增飞书 Lark 外部审批和多渠道消息通知,慢查询分析扩展支持阿里云
    的头像 发表于 04-10 11:40 285次阅读
    NineData 2026年<b class='flag-5'>3</b>月功能上新:支持飞书外部审批,增强慢<b class='flag-5'>查询</b>分析与数据复制能力

    MySQL慢查询调优指南

    MySQL慢查询是数据库性能问题的最常见原因。当一条SQL语句执行超过1秒时,就可能影响用户体验;超过10秒时,通常会收到用户投诉;而超过30秒的查询,往往意味着系统存在严重的性能问题。本文从实
    的头像 发表于 04-09 10:01 160次阅读

    MySQL数据库慢查询分析与优化实战

    在讨论MySQL慢查询之前,需要先明确一个关键前提:什么是慢查询? 不同业务场景下,慢查询的定义差异巨大。一个数据报表后台的SQL执行30秒可能属于正常范围,但一个订单创建的数据库操作
    的头像 发表于 04-02 09:38 150次阅读

    MySQL 慢 SQL 排查这件事,NineData 社区VS DBeaver/ Navicat 技术分析

    :基于自研 CDC 技术,支持几十数据源之间的实时复制; - 数据库对比:快速比对结构与数据,不一致时自动生成变更 SQL
    的头像 发表于 03-17 11:53 114次阅读
    MySQL 慢 <b class='flag-5'>SQL</b> 排查这件事,NineData 社区VS DBeaver/ Navicat 技术分析

    变频器故障查询

    查询方法、诊断思路及解决方案,帮助技术人员高效应对突发问题。 一、变频器故障代码的识别与分类 现代变频器通常具备完善的故障自诊断功能,通过数字代码或字母组合提示故障类型。以西门子MM4系列为例,故障代码分为以下几类:
    的头像 发表于 01-19 07:41 735次阅读

    爱回收平台价格查询API接口详解

    ​ 在爱回收平台上,用户经常需要根据品牌ID和项目ID查询相关商品或服务的价格。为此,平台提供了一个简洁高效的API接口,帮助开发者或第三方应用实现自动化价格查询。本文将详细介绍这个API的使用方法
    的头像 发表于 11-19 14:57 870次阅读
    爱回收平台价格<b class='flag-5'>查询</b>API接口详解

    不用编程不用联网,实现倍福(BECKHOFF)PLC对接SQL数据库,上报和查询数据的案例

    ​IGT-DSER智能网关模块,支持各种PLC、智能仪表、远程IO与数据库之间双向通讯,既可以读取设备的数据上报到SQL数据库,也可以从数据库查询数据后写入到设备;数据库软件支持MySQL
    发表于 10-10 11:14

    常用PromQL查询案例总结

    在云原生时代,Prometheus已经成为监控领域的事实标准。作为一名资深运维工程师,我见过太多团队在PromQL查询上踩坑,也见过太多因为监控不到位导致的生产事故。今天分享10个实战中最常用的PromQL查询案例,每一个都是血泪经验的总结。
    的头像 发表于 09-18 14:54 845次阅读

    触摸查询软件有哪些强大功能|高格欣科技查询一体机终端

    高格欣触摸查询机是一款集触摸操作、高清显示和多媒体处理功能于一体的智能显示终端。它采用先进的触摸技术,结合时尚简约的外观设计,为用户提供便捷、高效的交互体验。无论是商业展示、政务服务还是教育娱乐等
    的头像 发表于 09-14 17:27 742次阅读
    触摸<b class='flag-5'>查询</b>软件有哪些强大功能|高格欣科技<b class='flag-5'>查询</b>一体机终端

    数据库慢查询分析与SQL优化实战技巧

    今天,我将分享我在处理数千次数据库性能问题中积累的实战经验,帮助你系统掌握慢查询分析与SQL优化的核心技巧。无论你是刚入门的运维新手,还是有一定经验的工程师,这篇文章都将为你提供实用的解决方案。
    的头像 发表于 09-08 09:34 1214次阅读

    如何查询电能质量在线监测装置的认证标准?

    LZ-100电能质量在线监测装置 查询电能质量在线监测装置的认证标准需结合 应用地域 和 认证类型 ,通过官方平台、认证机构数据库及行业资源获取。以下是具体查询方法和实操建议: 一、国内认证标准查询
    的头像 发表于 09-03 16:02 1267次阅读
    如何<b class='flag-5'>查询</b>电能质量在线监测装置的认证标准?

    Text2SQL准确率暴涨22.6%!3大维度全拆

    摘要 技术背景:Text2SQL 是将自然语言查询转为 SQL 的任务,经历了基于规则、神经网络、预训练语言模型、大语言模型四个阶段。当前面临提示优化、模型训练、推理时增强三大难题,研究
    的头像 发表于 08-14 11:17 812次阅读
    Text2<b class='flag-5'>SQL</b>准确率暴涨22.6%!<b class='flag-5'>3</b>大维度全拆

    MySQL慢查询终极优化指南

    作为一名在生产环境摸爬滚打多年的运维工程师,我见过太多因为慢查询导致的线上故障。今天分享一套经过实战检验的MySQL慢查询分析与索引优化方法论,帮你彻底解决数据库性能瓶颈。
    的头像 发表于 08-13 15:55 941次阅读

    产品详情查询API接口

    ,使用HTTP协议实现数据传输,支持多种应用场景,包括电商平台、移动应用和数据分析系统。本文将逐步介绍产品详情查询API接口的核心概念、工作原理、实现方法以及实际应用示例,帮助开发者快速上手。 什么是产品详情查询API接口? 产
    的头像 发表于 07-24 14:39 692次阅读
    产品详情<b class='flag-5'>查询</b>API接口

    媒体查询详解

    概述 媒体查询作为响应式设计的核心,在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。媒体查询常用于下面两场景: 针对设备和应用的属性信息(比如
    发表于 06-25 08:26