Python的Django框架中的数据过滤功能


Posted in Python onJuly 17, 2015

我们很少会一次性从数据库中取出所有的数据;通常都只针对一部分数据进行操作。 在Django API中,我们可以使用`` filter()`` 方法对数据进行过滤:

>>> Publisher.objects.filter(name='Apress')
[<Publisher: Apress>]

filter() 根据关键字参数来转换成 WHERE SQL语句。 前面这个例子 相当于这样:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE name = 'Apress';

你可以传递多个参数到 filter() 来缩小选取范围:

>>> Publisher.objects.filter(country="U.S.A.", state_province="CA")
[<Publisher: Apress>]

多个参数会被转换成 AND SQL从句, 因此上面的代码可以转化成这样:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE country = 'U.S.A.'
AND state_province = 'CA';

注意,SQL缺省的 = 操作符是精确匹配的, 其他类型的查找也可以使用:

>>> Publisher.objects.filter(name__contains="press")
[<Publisher: Apress>]

在 name 和 contains 之间有双下划线。和Python一样,Django也使用双下划线来表明会进行一些魔术般的操作。这里,contains部分会被Django翻译成LIKE语句:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE name LIKE '%press%';

其他的一些查找类型有:icontains(大小写无关的LIKE),startswith和endswith, 还有range(SQLBETWEEN查询)。

Python 相关文章推荐
Python 字符串中的字符倒转
Sep 06 Python
Python随机数random模块使用指南
Sep 09 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
对Python闭包与延迟绑定的方法详解
Jan 07 Python
Python创建字典的八种方式
Feb 27 Python
Python常见的pandas用法demo示例
Mar 16 Python
关于Python内存分配时的小秘密分享
Sep 05 Python
python 3.7.4 安装 opencv的教程
Oct 10 Python
Django框架models使用group by详解
Mar 11 Python
Python新手学习标准库模块命名
May 29 Python
Python实现Keras搭建神经网络训练分类模型教程
Jun 12 Python
python跨文件使用全局变量的实现
Nov 17 Python
在Python的Django框架中更新数据库数据的方法
Jul 17 #Python
在Django框架中运行Python应用全攻略
Jul 17 #Python
Python的Django框架中的数据库配置指南
Jul 17 #Python
浅谈python中截取字符函数strip,lstrip,rstrip
Jul 17 #Python
在Django的视图中使用数据库查询的方法
Jul 16 #Python
详解Python的Django框架中的模版继承
Jul 16 #Python
Django中模版的子目录与include标签的使用方法
Jul 16 #Python
You might like
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
smarty缓存用法分析
2014/12/16 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
快速查询Python文档方法分享
2017/12/27 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
python设置中文界面实例方法
2020/10/27 Python
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
一个SQL面试题
2014/08/21 面试题
大学生毕业自我鉴定范文
2013/11/03 职场文书
军神教学反思
2014/02/04 职场文书
工程采购员岗位职责
2014/03/09 职场文书
毕业论文评语大全
2014/04/29 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
五年级下册复习计划
2015/01/19 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
MySQL常用慢查询分析工具详解
2022/08/14 MySQL