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如何实现excel数据添加到mongodb
Jul 30 Python
python实现发送和获取手机短信验证码
Jan 15 Python
Python标准库sched模块使用指南
Jul 06 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
Python实现的在特定目录下导入模块功能分析
Feb 11 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
django使用xadmin的全局配置详解
Nov 15 Python
python3.7添加dlib模块的方法
Jul 01 Python
python怎么对数字进行过滤
Jul 05 Python
Python3如何使用tabulate打印数据
Sep 25 Python
python 调用API接口 获取和解析 Json数据
Sep 28 Python
python树莓派通过队列实现进程交互的程序分析
Jul 04 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 curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
一段实用的php验证码函数
2016/05/19 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
2017/03/08 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
pyqt5实现登录界面的模板
2020/05/30 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
文明风采获奖感言
2014/02/18 职场文书
施工安全责任书范本
2014/07/24 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
高考1977观后感
2015/06/04 职场文书
同意报考证明
2015/06/17 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
Win11怎么修改电源模式?Win11修改电源模式的方法
2022/04/05 数码科技
ubuntu下常用apt命令介绍
2022/06/05 Servers
Go语言编译原理之变量捕获
2022/08/05 Golang