django执行数据库查询之后实现返回的结果集转json


Posted in Python onMarch 31, 2020

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就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学python系列之教你如何根据图片生成字符画
May 23 Python
Python中zip()函数用法实例教程
Jul 31 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
使用Python获取并处理IP的类型及格式方法
Nov 01 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
python安装scipy的步骤解析
Sep 28 Python
新年福利来一波之Python轻松集齐五福(demo)
Jan 20 Python
后端开发使用pycharm的技巧(推荐)
Mar 27 Python
浅谈Python 命令行参数argparse写入图片路径操作
Jul 12 Python
python生成word合同的实例方法
Jan 12 Python
学点简单的Django之第一个Django程序的实现
Feb 24 Python
Python函数中的不定长参数相关知识总结
Jun 24 Python
Python super()方法原理详解
Mar 31 #Python
django实现更改数据库某个字段以及字段段内数据
Mar 31 #Python
django rest framework serializer返回时间自动格式化方法
Mar 31 #Python
Python @property及getter setter原理详解
Mar 31 #Python
关于Django Models CharField 参数说明
Mar 31 #Python
Django Serializer HiddenField隐藏字段实例
Mar 31 #Python
Django-xadmin+rule对象级权限的实现方式
Mar 30 #Python
You might like
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
PHP $_FILES函数详解
2011/03/09 PHP
详解PHP中strlen和mb_strlen函数的区别
2014/03/07 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
JavaScript prototype属性使用说明
2010/05/13 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
回顾Javascript React基础
2019/06/15 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
python append、extend与insert的区别
2016/10/13 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
Python中and和or如何使用
2020/05/28 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
导游词之吉林吉塔
2019/11/11 职场文书
java版 简单三子棋游戏
2022/05/04 Java/Android