django调用python脚本返回_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就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值