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

浙公网安备 33010602011771号