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 27 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
python中的常量和变量代码详解
Jul 25 Python
在mac下查找python包存放路径site-packages的实现方法
Nov 06 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
Dec 12 Python
解决Pytorch训练过程中loss不下降的问题
Jan 02 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
在Python中如何使用yield
Jun 07 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 Python
Python利用zhdate模块实现农历日期处理
Mar 31 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+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
微信小程序云开发之使用云存储
2019/05/17 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
Python open读写文件实现脚本
2008/09/06 Python
python中的yield使用方法
2014/02/11 Python
python实现RSA加密(解密)算法
2016/02/17 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
和平主题的演讲稿
2014/01/12 职场文书
电子邮箱格式怎么写
2014/01/12 职场文书
创新比赛获奖感言
2014/02/13 职场文书
三万活动总结
2014/04/28 职场文书
文明之星事迹材料
2014/05/09 职场文书
服务理念口号
2014/06/11 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电