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排序方法实例分析
Apr 30 Python
Python中统计函数运行耗时的方法
May 05 Python
python利用paramiko连接远程服务器执行命令的方法
Oct 16 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
详解django中url路由配置及渲染方式
Feb 25 Python
Python Datetime模块和Calendar模块用法实例分析
Apr 15 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
使用Python为中秋节绘制一块美味的月饼
Sep 11 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 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
初识PHP
2014/09/28 PHP
Yii使用技巧大汇总
2015/12/29 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
CentOS系统中PHP安装扩展的方式汇总
2017/04/09 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
浅谈python之新式类
2018/08/12 Python
使用python去除图片白色像素的实例
2019/12/12 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
专科应届毕业生求职信
2014/06/04 职场文书
鼓舞士气的口号
2014/06/16 职场文书
南极大冒险观后感
2015/06/05 职场文书
总结会主持词
2015/07/02 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python