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中的两个内置模块介绍
Apr 05 Python
python搭建微信公众平台
Feb 09 Python
常见python正则用法的简单实例
Jun 21 Python
Python基于动态规划算法解决01背包问题实例
Dec 06 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
使用python对excle和json互相转换的示例
Oct 23 Python
Python数据类型之Tuple元组实例详解
May 08 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
Python使用20行代码实现微信聊天机器人
Jun 05 Python
Python字符串三种格式化输出
Sep 17 Python
python如何利用Mitmproxy抓包
Oct 10 Python
Django windows使用Apache实现部署流程解析
Oct 12 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的APC模块实现上传进度条
2015/10/27 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
jquery ajaxfileupload异步上传插件使用详解
2017/02/08 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
基于js中this和event 的区别(详解)
2017/10/24 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
python多线程http下载实现示例
2013/12/30 Python
python sys.argv[]用法实例详解
2018/05/25 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
python 杀死自身进程的实现方法
2019/07/01 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
pytorch 自定义参数不更新方式
2020/01/06 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
python图片合成的示例
2020/11/09 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
自我鉴定三原则
2014/01/13 职场文书
春节请假条
2014/04/11 职场文书
公司会议策划方案
2014/05/17 职场文书
婚前财产协议书范本
2014/10/19 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python