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的Flask框架与数据库连接的教程
Apr 20 Python
日常整理python执行系统命令的常见方法(全)
Oct 22 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
详解Python打包分发工具setuptools
Aug 05 Python
Python中的引用和拷贝实例解析
Nov 14 Python
Python3实现配置文件差异对比脚本
Nov 18 Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 Python
python-地图可视化组件folium的操作
Dec 14 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
tp5修改(实现即点即改)
2019/10/18 PHP
Javascript倒计时代码
2010/08/12 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
Ajax和Comet技术总结
2017/02/19 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
跟老齐学Python之用while来循环
2014/10/02 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
python实现淘宝秒杀脚本
2020/06/23 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
2013届毕业生求职信范文
2013/11/20 职场文书
药剂专业求职信
2014/06/20 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang