码迷,mamicode.com
首页 > 其他好文 > 详细

Django查漏补缺

时间:2018-01-24 21:57:10      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:span   pre   etc   修改器   实例   where   bsp   cts   post   

在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() #读取所有

 

Django查漏补缺

标签:span   pre   etc   修改器   实例   where   bsp   cts   post   

原文地址:https://www.cnblogs.com/jokerbj/p/8343366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!