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 相关文章推荐
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
Python的面向对象思想分析
Jan 14 Python
Python基于pillow判断图片完整性的方法
Sep 18 Python
Python字典简介以及用法详解
Nov 15 Python
Python 字典与字符串的互转实例
Jan 13 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 Python
python爬取网易云音乐热歌榜实例代码
Aug 07 Python
用python发送微信消息
Dec 21 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实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
PHP CURL模拟GET及POST函数代码
2010/04/25 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
PHP getName()函数讲解
2019/02/03 PHP
js控制框架刷新
2008/08/01 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
jquery学习笔记之无new构建详解
2017/12/07 jQuery
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
python中正则表达式与模式匹配
2019/05/07 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
基于python3 的百度图片下载器的实现代码
2019/11/05 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
Django封装交互接口代码
2020/07/12 Python
html Table 表头固定的实现
2019/01/22 HTML / CSS
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
集体婚礼证婚词
2014/01/13 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
同事离别感言
2015/08/04 职场文书