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 returnHttpResponse(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]forcolindesc],row))forrowin cursor.fetchall()]#列表表达式把数据组装起来 foronline_dictindata_dict:#判断如果时间类型要转出字符串,后期碰到什么类型不能转的在加 forkeyinonline_dict: iftype(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 returnHttpResponse(json.dumps(dic,ensure_ascii=False))
以上这篇django执行数据库查询之后实现返回的结果集转json就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。