django执行原生sql
一、ORM
row()方法:只能实现查询
d_list = models.Article.objects.raw( 'select nid, count(nid) as num,strftime("%Y-%m",create_time) as ctime from blog_article where user_id = ' + str(user.pk) + ' group by strftime("%Y-%m",create_time)' ) for i in d_list: print('i', i, type(i),i.ctime, i.num) #i Python BeautifulSoup抓取表情包并保存 <class 'blog.models.Article'> 2018-07 6
注意:1-选择的字段必须包含主键,2-通过'app名_表名'找表,3-where条件中用户id(user.pk)必须是字符串类型
不能像在终端输入sql语句后立即返回数据,只能通过调用对象属性的方法查看。
二、cursor对象: 支持所有操作
from django.db import connection question_obj = models.Questions.objects.get(pk=qid) cursor = connection.cursor() cursor.execute(question_obj.answer) res = cursor.fetchall() # 返回元组 for i in res: print(i, i[1])