Django ORM 查询表中某列字段值的方法


Posted in Python onApril 30, 2020

1.什么是ORM

  • ORM 全拼Object-Relation Mapping.
  • 中文意为 对象-关系映射.
  • 在MVC/MVT设计模式中的Model模块中都包括ORM

2.ORM优势

(1)只需要面向对象编程, 不需要面向数据库编写代码.

  • 对数据库的操作都转化成对类属性和方法的操作.
  • 不用编写各种数据库的sql语句.

(2)实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异.

  • 不在关注用的是mysql、oracle...等.
  • 通过简单的配置就可以轻松更换数据库, 而不需要修改代码.

3.ORM劣势

相比较直接使用SQL语句操作数据库,有性能损失.
根据对象的操作转换成SQL语句,根据查询的结果转化成对象, 在映射过程中有性能损失.

下面看下Django ORM 查询表中某列字段值,详情如下:

场景:

有一个表中的某一列,你需要获取到这一列的所有值,你怎么操作?

解决办法:

有一个model为:Event

方式一:

获取内容:
Event.objects.values('title')

输出内容:
<QuerySet [{'title': '测试feed'}, {'title': '今天'}, {'title': '第三个日程测试'}, {'title': '第四个日程测试'}, {'title': '第五个测试日程'}]>

方式一获取到的是一个QuerySet,内容是键值对构成的,键为表的列名,值为对应的每个值。

方式二:

获取内容:
Event.objects.values_list('title')

输出内容:
<QuerySet [('测试feed',), ('今天',), ('第三个日程测试',), ('第四个日程测试',), ('第五个测试日程',)]>

方式二获取到的也是一个QuerySet,但是内容是元祖形式的查询列的值。

但是我们想要的是这一列的值呀,这怎么是一个QuerySet,而且还包含了列名,或者是被包含在了元祖中?

查看高阶用法,告诉你怎么获取一个值的list,如:

['测试feed', '今天', '第三个日程测试', '第四个日程测试', '第五个测试日程']

到此这篇关于Django ORM 查询表中某列字段值的文章就介绍到这了,更多相关django orm 字段值内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 列表(List)操作方法详解
Mar 11 Python
Python中operator模块的操作符使用示例总结
Jun 28 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
Python 常用 PEP8 编码规范详解
Jan 22 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
Jul 24 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
Mar 14 Python
python 编写简单网页服务器的实例
Jun 01 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
浅谈python常用程序算法
Mar 22 Python
Python3模拟curl发送post请求操作示例
May 03 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 Python
Python pip install如何修改默认下载路径
Apr 29 #Python
Django 5种类型Session使用方法解析
Apr 29 #Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 #Python
Python退出时强制运行一段代码的实现方法
Apr 29 #Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 #Python
如何使用python切换hosts文件
Apr 29 #Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 #Python
You might like
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
php自定义的格式化时间示例代码
2013/12/05 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
prototype1.4中文手册
2006/09/22 Javascript
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
layui表格实现代码
2017/05/20 Javascript
hammer.js实现图片手势放大效果
2017/08/29 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
JavaScript 禁止用户保存图片的实现代码
2020/04/28 Javascript
python 运算符 供重载参考
2009/06/11 Python
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
python简单读取大文件的方法
2016/07/01 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
详解python的ORM中Pony用法
2018/02/09 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
python实现简单坦克大战
2020/03/27 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
基于python检查矩阵计算结果
2020/05/21 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
英国现代绅士品牌:Hackett
2017/12/17 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
实习教师自我鉴定
2013/12/12 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
幼儿园辞职书
2015/02/26 职场文书
商务英语求职信范文
2015/03/19 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书