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设置Socket代理及实现远程摄像头控制的例子
Nov 13 Python
Python第三方库的安装方法总结
Jun 06 Python
Python算术运算符实例详解
May 31 Python
Python标准库inspect的具体使用方法
Dec 06 Python
Python编程scoketServer实现多线程同步实例代码
Jan 29 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
Jan 14 Python
对Python函数设计规范详解
Jul 19 Python
基于Tensorflow批量数据的输入实现方式
Feb 05 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
python应用Axes3D绘图(批量梯度下降算法)
Mar 25 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
Python并发编程实例教程之线程的玩法
Jun 20 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 adodb操作mysql数据库
2009/03/19 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
jquery 简单导航实现代码
2009/09/11 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
python 数据加密代码
2008/12/24 Python
一个简单的python程序实例(通讯录)
2013/11/29 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
python绘制简单折线图代码示例
2017/12/19 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
python异步Web框架sanic的实现
2020/04/27 Python
Python爬取网页信息的示例
2020/09/24 Python
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
党员创先争优承诺书
2014/03/26 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
解除劳动合同协议书(样本)
2014/10/02 职场文书
观后感开头
2015/06/19 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python