这篇文章主要介绍django执行数据库查询之后如何实现返回的结果集转json格式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
django执行sql语句后得到的返回结果是一个结果集,直接把结果转json返回给前端会报错,需要先遍历转字典在转json,特别注意model_to_dict()只会将结果集的第一条数据转字典,如果你是根据指定条件查一条数据返回的,直接用model_to_dict()没问题,如果执行的是all()或filter()到多条或全部的数据,这个时候去model_to_dict()这个集合就不行了,那么先遍历这个集合在转字典,然后转json就ok了
dic = {}
res = models.tables.objects.all().order_by('-id')
L = []
b = model_to_dict(res)
L.append(b)
dic['code'] = '1'
dic['message'] = ''
dic['result'] = L
return HttpResponse(json.dumps(dic, ensure_ascii=False))
order_by('-id'):是将结果集根据ID倒序排序
补充知识:django执行sql根据字段显示对应的数据方式
L = []
cursor.execute(sql)
desc = cursor.description # 获取字段的描述,默认获取数据库字段名称
data_dict = [dict(zip([col[0] for col in desc], row)) for row in
cursor.fetchall()] # 列表表达式把数据组装起来
for online_dict in data_dict: # 判断如果时间类型要转出字符串,后期碰到什么类型不能转的在加
for key in online_dict:
if type(online_dict[key]) in (datetime, pymysql.TIMESTAMP, pymysql.DATE,
pymysql.TIME, YEAR):
online_dict[key] = online_dict[key].strftime(
"%Y-%m-%d %H:%M:%S")
else:
pass
L.append(online_dict)
conn.commit()
cursor.close()
conn.close()
dic['code'] = '2'
dic['message'] = ''
dic['result'] = L
return HttpResponse(json.dumps(dic, ensure_ascii=False))
以上是“django执行数据库查询之后如何实现返回的结果集转json格式”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。