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 web程序
Sep 11 Python
Python3遍历目录树实现方法
May 22 Python
Django实现图片文字同时提交的方法
May 26 Python
Python匹配中文的正则表达式
May 11 Python
python中 chr unichr ord函数的实例详解
Aug 06 Python
python递归打印某个目录的内容(实例讲解)
Aug 30 Python
python Matplotlib画图之调整字体大小的示例
Nov 20 Python
python PyTorch预训练示例
Feb 11 Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 Python
Python pandas库中的isnull()详解
Dec 26 Python
Python常用数据分析模块原理解析
Jul 20 Python
python 常见的反爬虫策略
Sep 27 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
轻松修复Discuz!数据库
2008/05/03 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
python爬取网页转换为PDF文件
2018/06/07 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
个性发展自我评价2015
2015/03/09 职场文书
材料员岗位职责范本
2015/04/11 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL
字节飞书面试promise.all实现示例
2022/06/16 Javascript