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 16 Python
Python 如何访问外围作用域中的变量
Sep 11 Python
Python批量发送post请求的实现代码
May 05 Python
python3.6使用pymysql连接Mysql数据库
May 25 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
python3多线程知识点总结
Sep 26 Python
python中Lambda表达式详解
Nov 20 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
Jun 18 Python
python+requests接口自动化框架的实现
Aug 31 Python
Python非单向递归函数如何返回全部结果
Dec 18 Python
python b站视频下载的五种版本
May 27 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
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
Python callable内置函数原理解析
2020/03/05 Python
Python装饰器结合递归原理解析
2020/07/02 Python
初三学生评语大全
2014/04/24 职场文书
农业项目建议书
2014/08/25 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
老干部座谈会主持词
2015/07/03 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL