kangyuetao
for me

原生sql

2018-02-10 技术点
Word count: 262 | Reading time: 1min

django中使用原生sql

在Django中使用原生Sql主要有以下几种方式:

一:extra:结果集修改器,一种提供额外查询参数的机制

二:raw:执行原始sql并返回模型实例

三:直接执行自定义Sql

(

这种方式完全不依赖model,前两种还是要依赖于model

)

实例:

使用extra:

1:Book.objects.filter(publisher__name=’广东人员出版社’).extra(where=[‘price>50’])

Book.objects.filter(publisher__name=’广东人员出版社’,price__gt=50)

2:Book.objects.extra(select={‘count’:’select count(*) from hello_Book’})

使用raw:

Book.objects.raw(‘select * from hello_Book’)

自定义sql:

Book.objects.raw(“insert into hello_author(name) values(‘测试’)”)

rawQuerySet为惰性查询,只有在使用时生会真正执行

执行自定义sql:

from django.db import connection

cursor=connection.cursor()

#插入操作

cursor.execute(“insert into hello_author(name) values(‘郭敬明’)”)

#更新操作

cursor.execute(‘update hello_author set name=’abc’ where name=’bcd’’)

#删除操作

cursor.execute(‘delete from hello_author where name=’abc’’)

#查询操作

cursor.execute(‘select * from hello_author’)

raw=cursor.fetchone() #返回结果行游标直读向前,读取一条

cursor.fetchall() #读取所有

分类: [python](https://

Author: kangyuetao

Link: https://kangyuetao.github.io/51661/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
Tornado
NextPost >
正则
CATALOG
  1. 1. django中使用原生sql