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 相关文章推荐
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
Python中字符串的修改及传参详解
Nov 30 Python
django解决跨域请求的问题详解
Jan 20 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 Python
python系列 文件操作的代码
Oct 06 Python
Python高级编程之继承问题详解(super与mro)
Nov 19 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
Apr 07 Python
基于 Python 实践感知器分类算法
Jan 07 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Jun 28 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 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.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
IE图片缓存document.execCommand("BackgroundImageCache",false,true)
2011/03/01 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
安全资料员岗位职责
2013/12/14 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
售房协议书
2014/08/19 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
2014离婚协议书范文
2014/09/10 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
十二生肖观后感
2015/06/12 职场文书