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计算书页码的统计数字问题实例
Sep 26 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
python内置函数sorted()用法深入分析
Oct 08 Python
Python二元赋值实用技巧解析
Oct 25 Python
Python上下文管理器全实例详解
Nov 12 Python
pytorch自定义二值化网络层方式
Jan 07 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
python软件都是免费的吗
Jun 18 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
php遍历CSV类实例
2015/04/14 PHP
PHP异常处理浅析
2015/05/12 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
js里怎么取select标签里的值并修改
2012/12/10 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
Vue.js用法详解
2017/11/13 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
Python3基础之输入和输出实例分析
2014/08/18 Python
Python的设计模式编程入门指南
2015/04/02 Python
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
python实现微信自动回复机器人功能
2019/07/11 Python
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
带薪年假请假条
2014/02/04 职场文书
动画设计系毕业生求职信
2014/07/15 职场文书
工作表扬信范文
2015/01/17 职场文书
导游词欢迎词
2015/02/02 职场文书
地道战观后感300字
2015/06/04 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android