django执行原生sql_mysql语句执行顺序

django执行原生sql_mysql语句执行顺序前言Django在查询数据时,大多数查询都能使用ORM提供的API方法,但对于一些复杂的查询可能难以使用ORM的API方法实现,因此Django引入了SQL语句的执行方法,有以下三种执行方式ext

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

Django在查询数据时,大多数查询都能使用ORM提供的API方法,但对于一些复杂的查询可能难以使用ORM的API方法实现,因此Django引入了SQL语句的执行方法,有以下三种执行方式

  • extra:结果集修改器,一种提供额外查询参数的机制。
  • raw:执行原始SQL并返回模型实例对象。
  • execute:直接执行自定义SQL

以上3种方式,这里只介绍raw方式,用的最多,也最推荐使用
 

raw

只能实现数据查询操作,并且要依靠模型对象,在Pycharm里打开raw源码,如下图所示,它一共定义了4个参数,每个参数如下:

  • raw_query:SQL语句
  • params:如果raw_query设置字符串格式化%s,那么该参数为raw_query提供数值
  • translations:为查询的字段设置别名
  • using:数据库对象,即Django所连接的数据库
    def raw(self, raw_query, params=None, translations=None, using=None):
        if using is None:
            using = self.db
        qs = RawQuerySet(raw_query, model=self.model, params=params, translations=translations, using=using)
        qs._prefetch_related_lookups = self._prefetch_related_lookups[:]
        return qs

上述参数只有raw_query是必选参数,其他参数可根据需求自行选择。我们以模型Student为例,使用raw实现数据查询,代码如下:

students = Student.objects.raw('select * from Student')
    for student in students:
        print(student)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166162.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月7日 上午7:36
下一篇 2022年8月7日 上午7:36


相关推荐

  • springcloud eruka刷新时间配置实战「建议收藏」

    springcloud eruka刷新时间配置实战「建议收藏」由于在使用springclouderuka时,服务注册和发现,默认配置往往不能满足及时性的要求,搜集整理了一篇配置。请多多指教server.port=7001spring.application.name=eureka-servereureka.client.serviceUrl.defaultZone=http://localhost:7002/eureka/eureka.client.registerWithEureka=trueeureka.client.fetchRegistry=t

    2022年8月21日
    10
  • 贪心法

    贪心法贪心法贪心算法并不是从整体最优上加以考虑 而是从局部最优考虑 每次总是做出当前看起来最好的选择 在某种意义上的局部最优选择 最优子结构性质 贪心选择性质 1 nbsp 活动安排 问题描述 设有 n 个活动集合 E 1 2 n 其中每个活动 i 都要求使用同一资源 而在同一时间内只有一个活动能使用这一资源 每个活动 i 都有一个要求使用该资源的起始

    2026年3月19日
    3
  • 数字图像处理基本知识

    数字图像处理基本知识二 数字图像处理的概念 1 什么是图像 图 是物体投射或反射光的分布 像 是人的视觉系统对图的接受在大脑中形成的印象或反映 nbsp 是客观和主观的结合 2 数字图像是指由被称作象素的小块区域组成的二维矩阵 将 nbsp nbsp 物理图象行列划分后 每个小块区域称为像素 pixel nbsp nbsp nbsp 每个像素包括两个属性 位置和灰度 对于单色即灰度图像而言 每个象素的亮度用一个数值来表示

    2025年8月27日
    3
  • 如何在Python中将列表转换为字符串?

    如何在Python中将列表转换为字符串?Pythonprovidesdifferentvariabletypeforprogrammersusage.Wecanuseint,float,string,list,set…datatypesinourapplications.Whileusingdifferenttypeofvariableswemayneedtoconvert…

    2022年4月30日
    96
  • AI门户

    AI门户

    2026年3月13日
    2
  • java生成license_使用truelicense实现用于JAVA工程license机制(包括license生成和验证)…

    java生成license_使用truelicense实现用于JAVA工程license机制(包括license生成和验证)…开发的软件产品在交付使用的时候,往往会授权一段时间的试用期,这个时候license就派上用场了。不同于在代码中直接加上时间约束,需要重新授权的时候使用license可以避免修改源码,改动部署,授权方直接生成一个新的license发送给使用方替换掉原来的license文件即可。下面将讲述使用truelicense来实现license的生成和使用。Truelicense是一个开源的证书管理引擎,详细介…

    2022年7月26日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号