三、raw()方法

1、raw()用法

The raw() manager method can be used to perform raw SQL queries that return model instances:

Manager. raw ( raw_query , params=None , translations=None )

用法:

>>> for p in Person.objects.raw('SELECT * FROM Person LIMIT 2'):

...     print p

John Smith

Jane Jones

注意,原始SQL里的model,如果在 db_table 没有定义,则使用app的名称,后面下划线 后面接模型类的名称,如"Myblog_New";上面的例子,在定义类的时候已经这样处理了:

Class New(models.Model):

......

......

#自定义表名

class Meta:

db_table = 'New'

2、查询字段隐射到模型字段(Mapping query fields to model fields)

raw() automatically maps fields in the query to fields on the model.并且是通过名称来匹配,这意味着我们可以使用SQL子句(clause)

>>> Person.objects.raw('''SELECT first AS first_name,

...                              last AS last_name,

...                              bd AS birth_date,

...                              pk as id,

...                       FROM some_other_table''')

返回一个RawQuerySet对象

3、索引查找(Index lookups)

first_person = Person.objects.raw('SELECT * from myapp_person')[0]

first_person = Person.objects.raw('SELECT * from myapp_person LIMIT 1')[0]

#然而,索引和切片不是在数据库级别上执行(除LIMIT外)

4、延迟模型字段(Deferring model fields)

Fields may also be left out(left out:忽视,不考虑;被遗忘),这意味着该字段的查询将会被排除在根据需要时的加载。

>>> for p in Person.objects.raw('SELECT id, first_name FROM myapp_person'):

...     print p.first_name, # 这将检索到原始查询

...     print p.last_name # 这将检索需求

...

John Smith

Jane Jones

这个例子其实检索了三个字段,一个主键(必需)、一个原始SQL字段、一个需求字段。这里主键字段不能省略,否则会出错,如下:

5、传递参数(Passing parameters into raw() )

如果需要执行参数化查询,您可以使用params参数原始()

注意两点:

(1)、必须使用[参数],否则出错:

(2)、这种方式不对:

Error:

>>> query = 'SELECT * FROM myapp_person WHERE last_name = %s' % lname

>>> Person.objects.raw(query)

转载自:https://www.cnblogs.com/hello-/articles/9095444.html

python直接执行*.sql_Python Django 之 直接执行自定义SQL语句(一)相关推荐

  1. 预算执行审计计算机审计方法,预算执行审计中计算机审计思路和SQL语句运用.doc...

    预算执行审计中计算机审计思路和SQL语句运用 预算执行审计中计算机审计思路和SQL语句运用 [摘要] 面对庞大的业务数据量,计算机辅助审计的开展解决了手工审计无法做到的审查功能,财政预算执行的审计领域 ...

  2. Python与开源GIS:在OGR中使用SQL语句进行查询

    属性选择与空间选择都可以看作是OGR内置的选择功能,这两种功能可以解决大部分实际中的问题.但是也有这种时候,就是进行查询时的条件比较复杂.针对这种情况,OGR也提供了更加灵活的解决方案:支持使用SQL ...

  3. Zend Framework中,执行自定义sql语句

    Zend Framework中的Zend_Db_Table类可以很好的对数据表实现select,insert,delete等操作.但是有时候还是希望自己运行一些sql语句. ZF当然也是支持的. 一种 ...

  4. mysql 执行效率命令_MySQL优化--explain 分析sql语句执行效率

    MySQL优化--explain 分析sql语句执行效率 explain 命令 explain 命令在解决数据库性能上市第一推荐使用命令,大部分的性能问题可以通过此命令来简单解决,explain可以用 ...

  5. 【python数据挖掘课程】十一.Pandas、Matplotlib结合SQL语句可视化分析

    这是非常好的一篇文章,可以认为是我做数据分析的转折点,为什么呢? 因为这是我做数据分析第一次引入SQL语句,然后爱不释手:结合SQL语句返回结果进行数据分析的效果真的很好,很多大神看到可能会笑话晚辈, ...

  6. mysql 查询正在执行的事务以及锁 常用的sql语句

    执行update语句报错 [Err] 1205 - Lock wait timeout exceeded; try restarting transaction 查询 正在执行的事务: ​​​​​​​ ...

  7. Python学习笔记--10.Django框架快速入门之后台管理admin(书籍管理系统)

    Python学习笔记--10.Django框架快速入门之后台管理 一.Django框架介绍 二.创建第一个Django项目 三.应用的创建和使用 四.项目的数据库模型 ORM对象关系映射 sqlite ...

  8. python读什么英文-django的英文读法是什么

    Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计.Django遵守BSD版 ...

  9. 执行多条SQL语句,执行数据库事务(可传入Sql参数)

    上篇博客,实例介绍了一个事务执行多条SQL语句函数(int ExecuteSqlTran(List<String> SQLStringList))点击打开链接,方便之余又发现了它的缺陷-- ...

最新文章

  1. 基于YOLOv5的智慧工地安全帽检测(1)
  2. 通过cookie保存并读取用户登录信息
  3. 002 python准备做题的一些准备
  4. Jenkins的关闭、重启
  5. ES6新特性之函数优化-参数默认值
  6. Bootstrap是什么
  7. SAP License:SAP 成本管理专题
  8. 有关vi(vim)的常用命令
  9. python中await async_asyncio中的async和await
  10. cesium-相机系统
  11. 如何在Windows下安装ReviewBoard
  12. 配置jetson的usb转串口驱动
  13. iPhone查询商品历史价格详细教程
  14. iota 的 优点与吐槽
  15. Pytorch:RNN、LSTM、GRU 构建人名分类器(one-hot版本、Embedding嵌入层版本)
  16. 图片怎么加logo水印
  17. 计算机硬件工程师需要学哪些,嵌入式硬件工程师要求是什么?需要掌握哪些内容...
  18. 后台系统登录一般流程
  19. python移动光标至行首_Python re.sub()行首开始锚定
  20. C语言例题解析 - 基础篇

热门文章

  1. Go 知识点(01)— 主协程与子协程执行顺序
  2. 正确“假期休息模式”
  3. axmath公式编辑器
  4. os.environ[CUDA_DEVICE_ORDER] = PCI_BUS_ID os.environ[CUDA_VISIBLE_DEVICES] = 0
  5. Tensorflow中tf.ConfigProto()详解
  6. Python 的基本数据类型
  7. HarmonyOS 修改App的默认加载的界面
  8. INSTALL_FAILED_UID_CHANGED
  9. px像素如何转为dip设备独立像素设备独立像
  10. Web Service 安全性解决方案(SOAP篇)