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 15 Python
详解Python3中的Sequence type的使用
Aug 01 Python
python 多线程中子线程和主线程相互通信方法
Nov 09 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
详解Python中的分支和循环结构
Feb 11 Python
python实现五子棋程序
Apr 24 Python
python中的插入排序的简单用法
Jan 19 Python
python自动生成sql语句的脚本
Feb 24 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
Jun 10 Python
python异步的ASGI与Fast Api实现
Jul 16 Python
Python中22个万用公式的小结
Jul 21 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
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
JavaScript中的History历史对象
2008/01/16 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
2016/09/01 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
浅谈Python NLP入门教程
2017/12/25 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
python实现弹窗祝福效果
2019/04/07 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
python数据类型强制转换实例详解
2020/06/22 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
django中ImageField的使用详解
2020/12/21 Python
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
十佳大学生村官事迹
2014/01/09 职场文书
小学生通知书评语
2014/12/31 职场文书
小学国庆节活动总结
2015/03/23 职场文书
安全员岗位职责范本
2015/04/11 职场文书
大学军训通讯稿
2015/07/18 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS