django中使用原生sql extra

1. 

ret = models.Article.objects.filter(user=user).extra(

select = {"archive_ym":"date_format(create_time,'%%Y-%%m')"}

).values("archive_ym").annotate(c=Count("nid")).values("archive_ym","c")

 

2. 查询person表,判断每个人的工资是否大于2000

ret= models.Person.objects.all().extra(

select ={"gt","salary>2000"}

)

相当于:select (salary>2000) as 'gt',person.id,person.name,person.salary from person

 

3. 直接执行mysql语句,类似pymysql

from django.db import connection

cursor=connection.cursor()  

sql = "select * from person where id = %s"

cursor.excute(sql,(1,))

row = cursor.fetchone()

print now

 

posted @ 2018-08-09 17:34  hayabky  阅读(435)  评论(0)    收藏  举报