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中AND、OR的一个使用小技巧
Feb 18 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
Python搭建FTP服务器的方法示例
Jan 19 Python
python中的随机函数小结
Jan 27 Python
Python及Django框架生成二维码的方法分析
Jan 31 Python
Python中实现单例模式的n种方式和原理
Nov 14 Python
实例详解Python模块decimal
Jun 26 Python
python多线程同步实例教程
Aug 11 Python
python计算n的阶乘的方法代码
Oct 25 Python
Python 调用有道翻译接口实现翻译
Mar 02 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
Apr 09 Python
Python使用pyenv实现多环境管理
Feb 05 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
js玩一玩WSH吧
2007/02/23 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
2016/09/19 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
pandas值替换方法
2018/07/10 Python
python语音识别实践之百度语音API
2018/08/30 Python
Python中的heapq模块源码详析
2019/01/08 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
Python aiohttp百万并发极限测试实例分析
2019/10/26 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
html5使用canvas画三角形
2014/12/15 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
活动总结报告格式
2014/05/09 职场文书
建议书的格式
2014/05/12 职场文书
利用Pycharm连接服务器的全过程记录
2021/07/01 Python
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang