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实现的科学计算器功能示例
Aug 04 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
Oct 29 Python
修改默认的pip版本为对应python2.7的方法
Nov 06 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
python脚本之一键移动自定格式文件方法实例
Sep 02 Python
python将三维数组展开成二维数组的实现
Nov 30 Python
python实现图片素描效果
Sep 26 Python
Python实现壁纸下载与轮换
Oct 19 Python
Python学习工具jupyter notebook安装及用法解析
Oct 23 Python
numpy实现RNN原理实现
Mar 02 Python
Python os和os.path模块详情
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
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
PHP读取大文件的几种方法介绍
2016/10/27 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
JSON相关知识汇总
2015/07/03 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
解决Vue watch里调用方法的坑
2020/11/07 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
Python中apply函数的用法实例教程
2014/07/31 Python
Python批量转换文件编码格式
2015/05/17 Python
python批量爬取下载抖音视频
2019/06/17 Python
简单了解python元组tuple相关原理
2019/12/02 Python
英国折扣零售连锁店:QD Stores
2018/12/08 全球购物
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
计算机专业推荐信范文
2013/11/20 职场文书
留学生求职信
2014/06/03 职场文书
商务经理岗位职责
2014/08/03 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
python实现简单的三子棋游戏
2022/04/28 Python