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给你的头像加上圣诞帽
Jan 04 Python
python的scikit-learn将特征转成one-hot特征的方法
Jul 10 Python
django进阶之cookie和session的使用示例
Aug 17 Python
pygame实现简易飞机大战
Sep 11 Python
解决python os.mkdir创建目录失败的问题
Oct 16 Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 Python
python pillow模块使用方法详解
Aug 30 Python
在notepad++中实现直接运行python代码
Dec 18 Python
Python with语句和过程抽取思想
Dec 23 Python
使用OpenCV实现道路车辆计数的使用方法
Jul 15 Python
详解python中的闭包
Sep 07 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 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入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
Javascript 加载和执行-性能提高篇
2012/12/28 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
详解Angular4 路由设置相关
2017/08/26 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
python利用datetime模块计算时间差
2015/08/04 Python
在Python中定义和使用抽象类的方法
2016/06/30 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
Python常用数据分析模块原理解析
2020/07/20 Python
python反扒机制的5种解决方法
2021/02/06 Python
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
应届毕业生的个人自我鉴定
2013/10/24 职场文书
运动会广播稿30字
2014/01/21 职场文书
生物制药专业求职信
2014/03/11 职场文书
对标管理实施方案
2014/03/12 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
节能宣传周活动总结
2014/05/08 职场文书
精神病医院见习报告
2014/11/03 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
自我推荐信格式模板
2015/03/24 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫