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中的默认参数详解
Jun 24 Python
Python线程指南详细介绍
Jan 05 Python
Python命令启动Web服务器实例详解
Feb 23 Python
python交互式图形编程实例(二)
Nov 17 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
python单例模式实例解析
Aug 28 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
python tkinter基本属性详解
Sep 16 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
Django 用户认证Auth组件的使用
Nov 30 Python
python绘图模块之利用turtle画图
Feb 12 Python
利用Python+OpenCV三步去除水印
May 28 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/23 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
jquery图片上下tab切换效果
2011/03/18 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
2017/11/07 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
Python入门之modf()方法的使用
2015/05/15 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
Ratchet 模态框的实现
2020/08/19 HTML / CSS
行政副总岗位职责
2014/02/23 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
个人承诺书
2014/03/26 职场文书
租房协议书怎么写
2014/04/10 职场文书
停电放假通知
2015/04/14 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python
详解JS ES6编码规范
2021/05/07 Javascript
详解运行Python的神器Jupyter Notebook
2021/06/03 Python