[Django学习]查询过滤器(lookup types)

1.exact

exact用于精确匹配字段的值。适用于需要精确查找某个字段值的场景。
 

Book.objects.filter(title__exact='Harry Potter')

上面的查询会查找标题完全为“Harry Potter”的书籍。

2.iexact

iexact忽略大小写地精确匹配字段的值。适用于需要忽略大小写进行精确匹配的场景。

Book.objects.filter(title__iexact='harry potter')

这将查找标题在忽略大小写的情况下完全匹配“harry potter”的书籍。

3.contains

contains用于查找字段包含特定子字符串的记录,适用于部分匹配查询。
 

Book.objects.filter(title__contains='Harry')

查找标题包含“Harry”的书籍。

4.icontains

icontains忽略大小写查找字段包含特定子字符串的记录。

Book.objects.filter(title__icontains='harry')

5.startswith

查找以特定字符串开头的记录。
 

Book.objects.filter(title__startswith='Harry')

6.istartswith

忽略大小写

Book.objects.filter(title__istartswith='harry')

7. endswith

endswith用于查找以特定字符串结尾的记录。


8. iendswith

iendswith忽略大小写地查找以特定字符串结尾的记录。


9. in

查找字段值在给定列表中的记录,适用于批量匹配查询(数组)。
 

Book.objects.filter(title__in=['Harry Potter', 'The Hobbit'])

只要标题是在给定的数组中,就会把这条记录拿出来


10. gt

查找字段值大于特定值的记录。
 

Book.objects.filter(price__gt=5)

查找价格严格大于5块钱的书

11. gte

查找字段值大于或等于特定值的记录。
 

12./13. lt/lte

lt用于查找字段值小于/小于等于特定值的记录。
 

14. range

range用于查找字段值在特定范围内的记录。
 

Book.objects.filter(price__range=(1, 10))

查找价格在1到10元的书本,range可以和上文的gt/gte、lt/lte搭配使用,如下

        if datas.get("countFlag") == "on":if datas.get("count") == "1":query &= Q(counts__range=(0, 10))elif datas.get("count") == "2":query &= Q(counts__range=(10, 50))elif datas.get("count") == "3":query &= Q(counts__range=(50, 100))elif datas.get("count") == "4":query &= Q(counts__gte=100)


15. date

date用于精确匹配日期字段的值。
 

Book.objects.filter(publish_date__date='2022-01-01')


16. year

year用于匹配特定年份的日期字段。
 

Book.objects.filter(publish_date__year=2022)


17./18. month/day

用法同上

19. week_day

week_day用于匹配特定星期几的日期字段。注意:1代表星期天,2代表星期一,以此类推。
 

Book.objects.filter(publish_date__week_day=2)

这个语句查询发布日期是在周一的书本

20. isnull

查找字段值为空的记录。如下查找作者字段为空的书籍。
 

Book.objects.filter(author__isnull=True)


21. regex

正则表达式匹配字段值。
 

Book.objects.filter(title__regex=r'^Harry')

查找标题以“Harry”开头的书籍。

22. iregex

iregex忽略大小写地正则表达式匹配字段值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/32263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已解决java.security.acl.AclNotFoundException异常的正确解决方法,亲测有效!!!

已解决java.security.acl.AclNotFoundException异常的正确解决方法,亲测有效!!! 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 分析错误日志 检查ACL文件路径和名称 确认系统权限 修改代码逻辑 确保ACL文…

安卓浏览器区分启动、打开、分享

搞了几个钟头,终于全兼容了,分享有2种类型! void getDataFromIntent(Intent intent) {if (intent.getAction().equals(Intent.ACTION_VIEW)) {urln intent.getDataString();if (urln ! null) {if (urln.contains("\n"))urln url…

数据分析方法之对比思维

数据分析方法论 对比分析是将两个或两个以上具有可比性的数据进行比较,分析其中的差异,以揭示事物的发展规律。 数据分析之对比思维 归纳方法——穆勒五法:分别是求同法、求异法、共用法、共变法、剩余法。求同法:比相同 2.1求…

利用 Python 和 AI 技术制作智能问答机器人

利用 Python 和 AI 技术制作智能问答机器人 引言 在人工智能的浪潮下,智能问答机器人成为了一种非常实用的技术。它们能够处理大量的查询,提供即时的反馈,并且可以通过机器学习技术不断优化自身的性能。本文将介绍如何使用 Python 来开发一…

现在这个行情,又又又要开始准备面试了~~

亲爱的程序员朋友们: 这些资料曾经帮助过许多有志之士顺利拿下抖音、快手、阿里等大厂的Offer,现在也希望它们能为你的面试旅程助力! 关注【程序员世杰】回复【1024】惊喜等你来拿! 截图 关注【程序员世杰】回复【1024】惊喜等你来拿&#xf…

python入门基础知识(错误和异常)

本文部分内容来自菜鸟教程Python 基础教程 | 菜鸟教程 (runoob.com) 本人负责概括总结代码实现。 以此达到快速复习目的 目录 语法错误 异常 异常处理 try/except try/except...else try-finally 语句 抛出异常 用户自定义异常 内置异常类型 常见的标准异常类型 语法…

数据结构---二叉树前中后序遍历

1. 某完全二叉树按层次输出(同一层从左到右)的序列为 ABCDEFGH 。该完全二叉树的前序序列为() A: ABDHECFG B: ABCDEFGH C: HDBEAFCG D: HDEBFGCA 2. 二叉树的先序遍历和中序遍历如下:先序遍历: EFHIGJK; 中序遍历: HFIEJKG. 则二叉…

exe4j使用笔记(jar包转exe工具)

文章目录 配置项1. Welcome2. Project type3. Application info4. Executable info5. Java invocation6. JRE7. Splash screen8. Messages9. Compile executable10. Finished 其他下载地址(官网地址??) 配置项 总共10个配置项。 1. Welcome 略(不用填) 2. Project type …

Unit redis-server.service could not be found.

我的报错如下Unit redis-server.service could not be found. 关键是刷新后台服务 sudo systemctl daemon-reload启动redis-server sudo systemctl start redis-server查看redis-Server服务状态 sudo systemctl status redis-server

MySQL数据库中的索引知识

MySQL数据库中索引的作用是用来加快数据的查询速度。 索引 index(表的层面) 在数据库中使用select来查询数据的时候会一条一条得去查询符合要求的数据,而索引就相当于在这张表中依据某一个字段的数值给这张表的数据创建了一个目录。目录帮…

江协科技51单片机学习- p11 静态数码管显示

前言: 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记,在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用: 51单片机入门教程-2…

如何处理Android应用程序的内存泄漏

如何处理Android应用程序的内存泄漏 在Android开发中,内存泄漏是一个常见且重要的问题。当应用程序不再需要某些对象时,但由于某种原因这些对象仍然被引用,导致它们不能被垃圾回收器(Garbage Collector)回收&#xff…

Cesium中的线性代数和计算机图形学知识介绍

目录 前言1.基础介绍1.1 线性代数1.1.1 向量 (Vectors)1.1.2 矩阵 (Matrices)1.1.3 四元数 (Quaternions) 1.2 计算机图形学1.2.1 投影变换 (Projection Transformations)1.2.2 视图变换 (View Transformations)1.2.3 模型变换 (Model Transformations)1.2.4 光照与着色 (Light…

Java 面试题:强引用、软引用、弱引用、幻象引用有什么区别?

在 Java 中,理解不同类型引用的区别对于掌握内存管理和垃圾回收机制是至关重要的。强引用、软引用、弱引用和幻象引用分别提供了不同的对象引用强度,使开发者能够精细控制对象的生命周期和内存使用情况。 强引用(Strong Reference&#xff09…

rapidjson使用中crash问题分析

问题 在使用rapidjson时,使用Document的Parse方法解析json字符串,程序crash。 分析 可以参考https://github.com/Tencent/rapidjson/issues/1269,由于rapidjson的内存分配器默认认为内存分配成功,没有对分配后做判空判断&#…

35.简易远程数据框架的实现

上一个内容:34.构建核心注入代码 34.构建核心注入代码它的调用LoadLibrary函数的代码写到游戏进程中之后无法调用,动态链接库的路径是一个内存地址,写到游戏进程中只把内存地址写过去了,内存地址里的内容没写过去,导致…

Netty ByteBuf 使用详解

文章目录 1.概述2. ByteBuf 分类3. 代码实例3.1 常用方法3.1.1 创建ByteBuf3.1.2 写入字节3.1.3 扩容3.1.2.1 扩容实例3.1.2.2 扩容计算新容量代码 3.1.4 读取字节3.1.5 标记回退3.1.6 slice3.1.7 duplicate3.1.8 CompositeByteBuf3.1.9 retain & release3.1.9.1 retain &a…

Jmeter5.X性能测试【完整版】

目录 一、Http基础协议和解析 1、浏览器的B/S架构和C/S架构 (1)CS架构 (2)BS架构 (3)URL理解 2、Http超文本传输协议 (1)含义 # 协议 # json协议 # xml协议 (…

分布式锁(Redission)

分布式锁: 使用场景: 通常对于一些使用率高的服务,我们会进行多次部署,可能会部署在不同的服务器上,但是他们获取和操作的数据仍然是同一份。为了保证服务的强一致性,我们需要对线程进行加锁,…

WRONGPASS invalid username-password pair or user is disabled

连接redis客户端的时候报错:WRONGPASS invalid username-password pair or user is disabled 当前redis版本为7.2.4 一、问题分析 默认情况下,Redis 7.0 使用默认用户名 default 和空密码进行身份验证。如果未设置 requirepass,则默认用户名…