Django(22)Django执行SQL语句「建议收藏」

Django(22)Django执行SQL语句「建议收藏」前言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/165038.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手眼标定_全面细致的推导过程

    手眼标定_全面细致的推导过程本文解决的问题:机械手搭载双目相机,手眼标定。本文有细致的推导过程,非常全面。什么是手眼标定?为什么会存在这个?使用李群李代数的方法求解AX=XB。

    2022年4月30日
    51
  • SpringBoot上传文件实现

    SpringBoot上传文件实现前言上传文件需求也是日常开发必不可少的操作,今天就稍微总结下,一般如果是上传图片操作,很多稍微大点的公司都有专门的图片服务器可直接将图片上传至那边即可,如果没有图片服务器的话,那么此处把图片也一并归为文件进行讲解。本文代码以springBoot为准上传到哪?这个问题想必我们在实现需求时也必定会思考,那么如果能确定该项目是一个单服务器结构,那为了方便起见,可采用上传至本地服务器的项…

    2022年6月10日
    34
  • ZigBee协议栈(一)–协议栈介绍

    ZigBee协议栈(一)–协议栈介绍1、Zigbee协议栈简介  协议是一系列的通信标准,通信双方需要按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗讲协议栈就是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议,进而实现无线数据收发。  如图1所示:Zigbee协议分为两部分,IEEE802.15.4定义了PHY(物理层)和MAC(介质访问层)技术规范;Zigbee联盟定义了NW

    2022年5月28日
    62
  • 文件系统 busybox and initramfs「建议收藏」

    文件系统 busybox and initramfs

    2022年1月30日
    39
  • 利用海伦公式编写三角形面积函数_c语言求三角形面积代码

    利用海伦公式编写三角形面积函数_c语言求三角形面积代码c语言写出海伦公式计算三角形面积

    2025年6月12日
    3
  • tasklist 结束进程_转Tasklist(windows)

    tasklist 结束进程_转Tasklist(windows)目录Tasklist简述1、”Tasklist”命令是一个用来显示运行在本地或远程计算机上的所有进程的命令行工具,带有多个执行参数。类似Linux系统的ps命令2、显示结果由五部分组成:映像名称(进程名)、PID、会话名、会话#、内存使用使用格式tasklist[/s[/u[\][/p]]][{/m|/svc|/v}][/fo{table|list|csv}…

    2025年6月11日
    5

发表回复

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

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