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

作者:速度在摇晃 时间:2024-01-18 12:29:22 

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))

来源:https://blog.csdn.net/xopqaaa/article/details/88242524

标签:django,sql,字段,数据
0
投稿

猜你喜欢

  • 使用tensorflow进行音乐类型的分类

    2021-02-22 16:58:31
  • MySQL执行状态的查看与分析

    2024-01-23 18:48:56
  • 正则表达式中两个反斜杠的匹配规则详解

    2023-10-05 17:24:37
  • Gin golang web开发模型绑定实现过程解析

    2024-04-25 15:10:59
  • 自动备份Oracle数据库

    2024-01-16 01:16:55
  • Python使用matplotlib 画矩形的三种方式分析

    2022-04-06 05:49:17
  • golang操作mongodb的方法

    2023-09-15 03:49:24
  • 微信小程序 数据缓存实现方法详解

    2024-04-19 09:49:22
  • Mysql中悲观锁与乐观锁应用介绍

    2024-01-15 08:26:30
  • javascript怎么禁用浏览器后退按钮

    2024-02-25 08:49:45
  • 6个Python办公黑科技,助你提升工作效率

    2022-11-15 14:31:21
  • 使用Python获取并处理IP的类型及格式方法

    2023-12-20 00:18:23
  • python通过opencv实现批量剪切图片

    2021-05-12 12:50:14
  • 弹性+固宽布局

    2009-05-15 12:19:00
  • 用户体验之内容篇

    2010-11-05 18:21:00
  • python实现简单飞机大战小游戏

    2023-12-19 06:55:37
  • Python实战购物车项目的实现参考

    2021-09-28 11:06:29
  • Vue实现简单跑马灯特效

    2024-04-30 10:31:05
  • selenium鼠标操作实战案例详解

    2023-09-18 04:08:40
  • Python基于smtplib模块发送邮件代码实例

    2022-09-18 11:07:49
  • asp之家 网络编程 m.aspxhome.com