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])

 

posted @ 2018-09-04 14:17  web123  阅读(549)  评论(0编辑  收藏  举报