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 open读写文件实现脚本
Sep 06 Python
跟老齐学Python之传说中的函数编写条规
Oct 11 Python
Django自定义认证方式用法示例
Jun 23 Python
django创建自定义模板处理器的实例详解
Aug 14 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 Python
如何使用pyinstaller打包32位的exe程序
May 26 Python
Django 实现admin后台显示图片缩略图的例子
Jul 28 Python
python3 selenium自动化 frame表单嵌套的切换方法
Aug 23 Python
Python分割训练集和测试集的方法示例
Sep 19 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
keras在构建LSTM模型时对变长序列的处理操作
Jun 29 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数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
javascript 短路法代码精简
2009/08/20 Javascript
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
javascript实现数据双向绑定的三种方式小结
2017/03/09 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
Python自动扫雷实现方法
2015/07/25 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
python 并发下载器实现方法示例
2019/11/22 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
关于爱国的演讲稿
2014/05/07 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
2016大学生国家助学贷款承诺书
2016/03/25 职场文书
OpenFeign实现远程调用
2022/08/14 Java/Android