zoukankan      html  css  js  c++  java
  • Django(22)Django执行SQL语句

    前言

    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)
    
  • 相关阅读:
    python函数对象
    生成器表达式,列表推导式
    python转换excel成py文件
    Python处理excel表
    Go基础:接口相关
    JAVA03-输入和输出
    python6-while循环
    python5-字典
    自动化8-xpath
    网络学习day1-计算机网络基础
  • 原文地址:https://www.cnblogs.com/jiakecong/p/14789886.html
Copyright © 2011-2022 走看看