django 数据库返回queryset实现封装为字典


Posted in Python onMay 19, 2020

默认情况下,Python DB API会返回不带字段的结果,这意味着你得到的是一个列表,而不是一个字典。花费一点性能代价之后,你可以返回一个字典形式的结果,像这样:

def dictfetchall(cursor):
 "Returns all rows from a cursor as a dict"
 desc = cursor.description
 return [
  dict(zip([col[0] for col in desc], row))
  for row in cursor.fetchall()
 ]

demo:

from django.db import connection
if __name__ == '__main__':
  """db=db_operate()
  sql='select DISTINCT t1.HostName,t2.IpAddress,t2.RegName,t2.AppUser,t2.`Desc` from machineinfo as t1,asset_appregioninfo as t2 where t1.IpAddress=t2.IpAddress;'
  result=db.mysql_command(settings.conn, sql)
  dic=dict(result)
  print dic
  """
  cur=connection.cursor()
  cur.execute('select DISTINCT t1.HostName,t2.IpAddress,t2.RegName,t2.AppUser,t2.`Desc` from machineinfo as t1,asset_appregioninfo as t2 where t1.IpAddress=t2.IpAddress;')
  dic=dictfetchall(cur)
  print dic

这样在前台,就可以通过

{%for i in dic%}
{i.字段}

生成列表了

补充知识:[django] queryset系列化3种方式model_to_dict、serializers

我就废话不多说了,大家还是直接看代码吧!

# 序列化方式1:
from django.forms.models import model_to_dict
import json
data=[]
for obj in book_list:
  data.append(model_to_dict(obj))
print(data)
return HttpResponse("ok")

# 序列化方式2:
data=serializers.serialize("json",book_list)
return HttpResponse(data)

# 序列化方式3:
bs=BookSerializers(book_list,many=True)
return Response(bs.data)

以上这篇django 数据库返回queryset实现封装为字典就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
Python使用CMD模块更优雅的运行脚本
May 11 Python
简单实现python画圆功能
Jan 25 Python
python如何压缩新文件到已有ZIP文件
Mar 14 Python
Python不同目录间进行模块调用的实现方法
Jan 29 Python
在python下使用tensorflow判断是否存在文件夹的实例
Jun 10 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
Oct 21 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
pycharm安装及如何导入numpy
Apr 03 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 Python
Python 如何创建一个线程池
Jul 28 Python
Python 避免字典和元组的多重嵌套问题
Jul 15 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 #Python
python 数据分析实现长宽格式的转换
May 18 #Python
如何把外网python虚拟环境迁移到内网
May 18 #Python
python 实现 hive中类似 lateral view explode的功能示例
May 18 #Python
pandas dataframe 中的explode函数用法详解
May 18 #Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 #Python
Win 10下Anaconda虚拟环境的教程
May 18 #Python
You might like
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
中国第一家无线电行
2021/03/01 无线电
一个php作的文本留言本的例子(四)
2006/10/09 PHP
phpMyAdmin 安装及问题总结
2009/05/28 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
Python入门篇之面向对象
2014/10/20 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
TensorFlow高效读取数据的方法示例
2018/02/06 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
会计电算化应届生自荐信
2014/02/25 职场文书
中学生家长评语大全
2014/04/16 职场文书
庆祝教师节活动总结
2015/03/23 职场文书
销售合作意向书范本
2015/05/08 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
MySQL update set 和 and的区别
2021/05/08 MySQL
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android