django model 条件过滤 queryset.filter(**condtions)用法详解


Posted in Python onMay 20, 2020

1、下述代码查询model对应数据库中日期等于2018-05-22的数据:

queryset = model.objects.all() 
condtions: {'date': '2018-05-22'}
query_res = queryset.filter(**condtions)

2、下述代码查询model对应数据库中日期小于2018-05-22的数据:

queryset = model.objects.all() 
condtions: {'date__lt': '2018-05-22'}
query_res = queryset.filter(**condtions)

3.总结:条件选取querySet的时候,filter表示=,exclude表示!=。

querySet.distinct() 去重复

__exact 精确等于 like 'aaa'
__iexact 精确等于 忽略大小写 ilike 'aaa'
__contains 包含 like '%aaa%'
__icontains 包含 忽略大小写 ilike '%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。
__gt 大于
__gte 大于等于
__lt 小于
__lte 小于等于
__in 存在于一个list范围内
__startswith 以...开头
__istartswith 以...开头 忽略大小写
__endswith 以...结尾
__iendswith 以...结尾,忽略大小写
__range 在...范围内
__year 日期字段的年份
__month 日期字段的月份
__day 日期字段的日
__isnull=True/False

如果参数是字典,如

condtions: {'date__lt': '2018-05-22','status': '未支付','name__exact': 'yangxia'}
Entry.objects.filter(**condtions)相当于 Entry.objects.filter(date__lt= '2018-05-22',status='未支付',name__exact='yangxia')

翻译成sql语句是

select * from Entry.objects where date<='2018-05-22' and status='未支付' and name like 'yangxia'

filter例子:

>> q1 = Entry.objects.filter(headline__startswith="What")
>> q2= q1.filter(pub_date__gte=datetime.date.today())
>>> q3= q.filter(pub_date__lte=datetime.date.today())

exclude例子:

>>> q1 = q.exclude(body_text__icontains="food")

>> q2 = q1.exclude(pub_date__gte=datetime.date.today())

补充知识:如何使用django的objects.filter()方法匹配多个关键字

介绍:

今天在使用django的时候忽然想用到,如何匹配多个关键字的操作,我们知道django有一个objects.filter()方法,我们可以通过如下一句代码实现匹配数据库中title包含key关键词的文章名称。

table.objects.filter(title__contains=key)

问题:

但是我的需求是我不仅仅只需要匹配出一个关键字的文章而是多个关键字的文章,那么我们该如何使用django的objects.filter()?

table.objects.filter(title__contains=key1)+.objects.filter(title__contains=key2)+....?

解决:

我们都知道在正常的sql语句中如果我们需要匹配多个关键字的title可以这样做

select title from data where title regexp 'key1|key2'
select title from data where title like '%key1%' or like '%key2%'

以上的两种sql语句都是选择出title属性中存在key1和key2的所有文章,那么django是不是也会有一种方法匹配多个关键字呢?当然有就是下面的代码

from django.db.models import Q
table.object.filter(Q(title__startswith='key1') | Q(title__startswith='key2'))

首先导入django的Q方法然后在filter中添加对应的匹配即可

以上这篇django model 条件过滤 queryset.filter(**condtions)用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
python实现红包裂变算法
Feb 16 Python
Python随机生成数据后插入到PostgreSQL
Jul 28 Python
python 动态加载的实现方法
Dec 22 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 Python
Python之NumPy(axis=0 与axis=1)区分详解
May 27 Python
对Python中class和instance以及self的用法详解
Jun 26 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
Python OrderedDict的使用案例解析
Oct 25 Python
python 多维高斯分布数据生成方式
Dec 09 Python
Python定义一个Actor任务
Jul 29 Python
python re模块常见用法例举
Mar 01 Python
如何在sublime编辑器中安装python
May 20 #Python
Django 解决distinct无法去除重复数据的问题
May 20 #Python
在主流系统之上安装Pygame的方法
May 20 #Python
python Django 反向访问器的外键冲突解决
May 20 #Python
Python如何实现爬取B站视频
May 20 #Python
django在开发中取消外键约束的实现
May 20 #Python
520使用Python实现“我爱你”表白
May 20 #Python
You might like
php xfocus防注入资料
2008/04/27 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
jquery iframe操作详细解析
2013/11/20 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
浅谈关于axios和session的一些事
2017/07/13 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
解析Python中while true的使用
2015/10/13 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
药品质量检测应届生求职信
2013/11/14 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
2015年女工委工作总结
2015/07/27 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
Apache Pulsar结合Hudi构建Lakehouse方案分析
2022/03/31 Servers