十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍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格式”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联成都网站设计公司行业资讯频道!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。