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

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


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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 拉屎抽烟定理_为什么抽烟才能拉出屎

    拉屎抽烟定理_为什么抽烟才能拉出屎最近一直在做游戏,刚开始接触游戏,思维还是撞不过来,买了一本书看了看了一下,才开始有了游戏思维,每当写程序感到思维混乱的时候,于是出去抽根烟,什么烦恼随着眼圈飘忽而出,有时抽着抽着突然就有了灵感,于是

    2022年8月3日
  • 举例说明随机函数的应用python_Python生成50个随机数

    举例说明随机函数的应用python_Python生成50个随机数摘要:下文讲述Python代码中seed()函数的简介说明,如下所示:seed()函数功能用于改变随机数生成器的种子,常用于其它随机函数之前运行此函数seed()函数语法seed.seed([x])———参数说明—-x:任意数字———返回值说明—-无返回值seed()函数注意事项:1.使用seed()函数需引入包random(importrandom)2.设置随…

    2022年11月1日
  • 微信小程序开发 – 用户授权登陆「建议收藏」

    微信小程序开发 – 用户授权登陆「建议收藏」本篇将帮助读者实现基于微信开发者工具&C#环境下的用户在小程序上的授权登陆。准备:微信开发者工具下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html微信小程序开发文档:https://developers.weixin.qq.com/miniprogram/d…

    2022年6月12日
  • import win32api 找不到指定程序_win32api python

    import win32api 找不到指定程序_win32api python环境描述:使用环境是win7+Python3.4,32位,下载地址:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/问题1:终端输入importwin32api后,总是报错,错误如下:问题1解决:使用的python-3.4是32位的,win7系统是64位的,在下载pywin32时…

    2022年10月10日
  • msfconsole学习

    msfconsole学习工具:Quasar-winAhMyth-andriod

    2022年9月7日
  • Oracle删除表空间的同时删除数据文件[通俗易懂]

    临时表空间主要用途是在数据库进行排序运算[如创建索引、orderby及groupby、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、管理索引[如创建索引、IMP进行数据导入]、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。当临时表空间不足时,表现为运算速度异常的慢,并且临时表空间迅速增长到最大空

    2022年4月18日

发表回复

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

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