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逐行读写txt文件的实例讲解
Apr 03 Python
tensorflow更改变量的值实例
Jul 30 Python
python实现简易动态时钟
Nov 19 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
python调用Matplotlib绘制分布点图
Oct 18 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
Apr 27 Python
使用Keras构造简单的CNN网络实例
Jun 29 Python
Python 多线程之threading 模块的使用
Apr 14 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设置编码格式的方法
2013/03/05 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
JS生成随机字符串的多种方法
2014/06/10 Javascript
Javascript window对象详解
2014/11/12 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
Python实现的端口扫描功能示例
2018/04/08 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
简单了解python协程的相关知识
2019/08/31 Python
python编写简单端口扫描器
2019/09/04 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
Python Django路径配置实现过程解析
2020/11/05 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
业务代表的岗位职责
2013/11/16 职场文书
公司晚会主持词
2014/03/22 职场文书
初三学生个人自我评定
2014/04/06 职场文书
党员四风剖析材料
2014/08/27 职场文书
培训简讯范文
2015/07/20 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
电频谱管理的原则是什么
2022/02/18 无线电
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL