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 条件判断的缩写方法
Sep 06 Python
Python统计列表中的重复项出现的次数的方法
Aug 18 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
Nov 18 Python
Python函数式编程指南(二):从函数开始
Jun 24 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
python机器人运动范围问题的解答
Apr 29 Python
python如何使用Redis构建分布式锁
Jan 16 Python
python相对企业语言优势在哪
Jun 12 Python
Django 构建模板form表单的两种方法
Jun 14 Python
Python制作一个仿QQ办公版的图形登录界面
Sep 22 Python
7个关于Python的经典基础案例
Nov 07 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
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
JS高级笔记
2011/07/13 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
Vue与Node.js通过socket.io通信的示例代码
2018/07/25 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
python处理document文档保留原样式
2019/09/23 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
如何定义一个可复用的服务
2014/09/30 面试题
西门豹教学反思
2014/02/04 职场文书
应届毕业生自荐信
2014/05/28 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
运动会广播稿200字
2015/08/19 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers