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正则表达式抓取成语网站
Nov 20 Python
Python探索之静态方法和类方法的区别详解
Oct 27 Python
Python 反转字符串(reverse)的方法小结
Feb 20 Python
新手常见6种的python报错及解决方法
Mar 09 Python
python线程池threadpool使用篇
Apr 27 Python
pycharm 安装JPype的教程
Aug 08 Python
详解Django-channels 实现WebSocket实例
Aug 22 Python
Django--权限Permissions的例子
Aug 28 Python
python OpenCV GrabCut使用实例解析
Nov 11 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
python编写一个会算账的脚本的示例代码
Jun 02 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 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
DC动漫人物排行
2020/03/03 欧美动漫
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
php jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
PHP6新特性分析
2016/03/03 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
PHP守护进程实例
2015/03/06 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
我所理解的JavaScript中的this指向
2020/09/04 Javascript
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
python 获取字符串MD5值方法
2018/05/29 Python
python输入多行字符串的方法总结
2019/07/02 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
在什么时候需要使用"常引用"
2015/12/31 面试题
高中三年学习生活的自我评价
2013/10/10 职场文书
电子技术专业中专生的自我评价
2013/12/17 职场文书
世博会口号
2014/06/20 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
中班上学期个人总结
2015/02/12 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript