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中使用enumerate函数遍历元素实例
Jun 16 Python
Python中AND、OR的一个使用小技巧
Feb 18 Python
详解Python中的type()方法的使用
May 21 Python
python使用urllib2提交http post请求的方法
May 26 Python
python脚本替换指定行实现步骤
Jul 11 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
TensorFlow 滑动平均的示例代码
Jun 19 Python
python文件写入write()的操作
May 14 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
浅谈Pytorch torch.optim优化器个性化的使用
Feb 20 Python
基于Python实现简单学生管理系统
Jul 24 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 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
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
JS功能代码集锦
2016/05/04 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
对Python实现简单的API接口实例讲解
2018/12/10 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
python scatter函数用法实例详解
2020/02/11 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
关于Java String的一道面试题
2013/09/29 面试题
机械设计及其自动化求职推荐信
2014/02/17 职场文书
工程造价专业大学生职业规划范文
2014/03/09 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
公司离职证明样本
2014/09/13 职场文书
论语读书笔记
2015/06/26 职场文书
学术会议开幕词
2016/03/03 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP