Django 常见的操作符

在filter() 方法,exclude() 方法中使用大于,小于,模糊匹配等操作符。

常见的操作符如下:

操作符含义示例
=等于Book.objects.filter(price=10)
!= 或 __ne不等于用于查找字段不等于特定值的记录。但更常用exclude()方法。
__gt大于用于查找字段大于特定值的记录Book.objects.filter(price__gt=10)
__gte大于等于Book.objects.filter(price__gte=10)
__lt小于

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

Book.objects.filter(price__lt=10)

__lte小于等于

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

Book.objects.filter(price__lte=10)

__in在某个列表内

你想要获取所有作者在列表中的书籍,你可以使用__in这将返回一个QuerySet,其中包含了所有作者为 '小强' 或 '小龙' 的书籍。

authors = ['小强', '小龙']
books = Book.objects.filter(author__in=authors)

__contains包含

用于查找字段包含特定子字符串的记录。

Book.objects.filter(title__contains="Python")

__icontains不包含

用于查找字段不包含特定子字符串的记录。注意,
__icontains是不区分大小写的。

Book.objects.exclude(title__icontains="Python")

__startswith以...开始

用于查找字段以特定字符串开始的记录。

Book.objects.filter(title__startswith="Python")

__endswith以...结束

用于查找字段以特定字符串结束的记录。

Book.objects.filter(title__endswith="Book")

__exact精确匹配

用于查找字段等于特定值的记录。这与直接使用
=是等价的。

Book.objects.filter(title__exact="Python Cookbook")

__regex

__iregex
模糊匹配

用于使用正则表达式匹配字段的记录。
__regex
区分大小写,
__iregex
不区分大小写。

Book.objects.filter(title__iregex=r"Python.*")

__year日期字段的年份

假设你有一个Post模型,其中包含一个created_at字段,类型为DateTimeField。如果你想获取所有在2023年创建的帖子,你可以使用__year这将返回一个QuerySet。

posts=Post.objects.filter(created_at__year=2023)

__month日期字段的月份假设你有一个Sales模型,其中包含一个sale_date字段,类型为DateTimeField或DateField
。如果你想获取所有在6月份的销售记录,你可以使用__month操作符如下:这将返回一个QuerySet,其中包含了所有在6月份的销售记录。
from myapp.models import Sales
sales_in_june = Sales.objects.filter(sale_date__month=6)
__day日期字段的天数

假设你有一个Event模型,其中包含一个event_date字段,类型为DateTimeField或DateField。如果你想获取所有在15号发生的事件,你可以使用__day
操作符如下:这将返回一个QuerySet,其中包含了所有在每个月的15号发生的事件。

from myapp.models import Event
events_on_15th = Event.objects.filter(event_date__day=15)

__week_day获取指定周日之前的数据假设你有一个LogEntry模型,其中包含一个timestamp字段,类型为DateTimeField。如果你想获取所有在星期五发生的日志条目,你可以使用__week_day操作符如下:这将返回一个QuerySet,其中包含了所有在星期五发生的日志条目。请注意,Django中的星期几是以1开始的,即1表示星期一,7表示星期日。
from myapp.models import LogEntry
entries_on_friday = LogEntry.objects.filter(timestamp__week_day=5)
__hour获取指定区间小时的数据

假设你有一个ActivityLog模型,其中包含一个timestamp字段,类型为DateTimeField
。如果你想获取所有在上午10点到11点之间发生的活动记录,你可以使用__hour操作符如下:这将返回一个QuerySet,其中包含了所有在上午10点到11点之间发生的活动记录。

from myapp.models import ActivityLog
activities_in_morning = ActivityLog.objects.filter(timestamp__hour__gte=10, timestamp__hour__lt=11)

__minute获取指定区间分的数据

假设你有一个SystemLog模型,其中包含一个timestamp字段,类型为DateTimeField
。如果你想获取所有在下午2点30分到2点35分之间发生的系统日志记录,你可以使用
__minute操作符如下:这将返回一个QuerySet,其中包含了所有在下午2点30分到2点35分之间发生的系统日志记录。

from myapp.models import SystemLog
logs_in_time_window = SystemLog.objects.filter(timestamp__hour=14, timestamp__minute__gte=30, timestamp__minute__lt=35)

__second获取指定秒的数据

假设你有一个Trade模型,其中包含一个timestamp字段,类型为DateTimeField。如果你想获取所有在某个特定秒数内发生的交易记录,你可以使用__second操作符如下:这将返回一个QuerySet,其中包含了所有在10点30分15秒发生的交易记录。

from myapp.models import Trade
trades_in_second = Trade.objects.filter(timestamp__hour=10, timestamp__minute=30, timestamp__second=15)

&   ,   |
 
查询多个条件

使用Q对象,可以使用逻辑“与”(&)和“或”(|)操作符来组合多个查询条件

from django.db.models import Q
Book.objects.filter(Q(price__gt=10) & Q(title__icontains="Python"))
这些操作符可以组合使用,以创建非常复杂和精确的查询。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nginx auth 的权限验证

基本流程 整个流程为;以用户视角访问API开始,进入 Nginx 的 auth 认证模块,调用 SpringBoot 提供的认证服务。根据认证结果调用重定向到对应的 API 接口或者 404 页面。 查看版本保证有 Nginx auth 模块 由于 OpenAI 或者本身自己训练的一套…

数据结构(其一)--基础知识篇

1. 数据结构三要素 1.1 数据结构的运算 即,增删改查 1.2 数据结构的存储结构 2. 数据类型,抽象数据类型 数据类型: (1). 原子类型:bool、int... (2). 结构类型:类、…

Linux多线程(中)

Linux多线程(中) 1.Linux线程互斥1.1互斥量的接口1.1.1初始化互斥量1.1.2销毁互斥量1.1.3互斥量加锁和解锁 1.2修改代码1.3互斥量实现原理 2.可重入VS线程安全3.死锁4.Linux线程同步5.生产者消费者模型 🌟🌟hello,各位…

Java 自定义集合常量

文章目录 Java 自定义集合常量一、普通方法自定义集合常量信息1、定义 Map 集合信息(1)方法一:使用静态代码块(2)方法二:简单定义 Map 常量 2、定义 List 集合信息3、定义 Set 集合信息 二、通过 Collectio…

用win的控制台去远程连接虚拟机linux的终端

以Ubuntu为例,首先确保Ubuntu已经安装了ssh服务 sudo apt-get install openssh-server输入密码 安装完毕后查看ssh状态是否开启 sudo systemctl status ssh 显示绿色激活状态,可以关闭或开启 对应start和stop winr打开win端控制台 输入 ssh -p 22 …

python-22-零基础自学python-数据分析基础 打开文件 读取文件信息

学习内容:《python编程:从入门到实践》第二版 知识点: 读取文件 、逐行读取文件信息等 练习内容: 练习10-1:Python学习笔记 在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的Python知识,其中…

ASCII码对照表(Matplotlib颜色对照表)

文章目录 1、简介1.1 颜色代码 2、Matplotlib库简介2.1 简介2.2 安装2.3 后端2.4 入门例子 3、Matplotlib库颜色3.1 概述3.2 颜色图的分类3.3 颜色格式表示3.4 内置颜色映射3.5 xkcd 颜色映射3.6 颜色命名表 4、Colorcet库5、颜色对照表结语 1、简介 1.1 颜色代码 颜色代码是…

声明队列和交换机 + 消息转换器

目录 1、声明队列和交换机 方法一:基于Bean的方式声明 方法二:基于Spring注解的方式声明 2、消息转换器 1、声明队列和交换机 方法一:基于Bean的方式声明 注:队列和交换机的声明是放在消费者这边的,这位发送的人他…

OSS存储桶漏洞总结

简介 OSS,对象存储服务,对象存储可以简单理解为用来存储图片、音频、视频等非结构化数据的数据池。相对于主机服务器,具有读写速度快,利于分享的特点。 OSS工作原理: 数据以对象(Object)的形式…

Java高级重点知识点-21-IO、字节流、字符流、IO异常处理、Properties中的load()方法

文章目录 IOIO的分类 字节流字节输出流【OutputStream】字节输入流【InputStream】图片复制 字符流字符输入流【FileReader】字符输出流【FileWriter】 IO异常的处理(扩展知识)Properties属性集(java.util) IO Java中I/O操作主要是指使用 java.io 包下的…

iOS中多个tableView 嵌套滚动特性探索

嵌套滚动的机制 目前的结构是这样的,整个页面是一个大的tableView, Cell 是整个页面的大小,cell 中嵌套了一个tableView 通过测试我们发现滚动的时候,系统的机制是这样的, 我们滑动内部小的tableView, 开始滑动的时候&#xff0c…

想知道你的电脑能不能和如何升级RAM吗?这里有你想要的一些提示

考虑给你的电脑增加更多的RAM,但不确定从哪里开始?本指南涵盖了有关升级Windows PC或笔记本电脑中RAM的所有信息。 你需要升级RAM吗 在深入研究升级RAM的过程之前,评估是否需要升级是至关重要的。你是否经历过系统滞后、频繁的BSOD错误或应用程序和程序突然崩溃?这些症状…

Lock与ReentrantLock

在 Java 中,Lock 接口和 ReentrantLock 类提供了比使用 synchronized 方法和代码块更广泛的锁定机制。 简单示例: import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;public class ReentrantLockExample {pr…

聊一下Maven打包的问题(jar要发布)

文章目录 一、问题和现象二、解决方法(1)方法一、maven-jar-pluginmaven-dependency-plugin(2)方法二、maven-assembly-plugin 一、问题和现象 现在的开发一直都是用spring boot,突然有一天,要自己开发一个…

【CUDA】

笔者在学习Softmax实现时遇到了一个问题,很多文章直接将softmax的计算分成了五个过程,而没有解释每个过程的含义,尤其是在阅读这篇文章时,作者想计算最基本的softmax的效率,以展示可行的优化空间: 贴一个g…

MybatisX插件的简单使用教程

搜索mybatis 开始生成 module path:当前项目 base package:生成的包名,建议先独立生成一个,和你原本的项目分开 encoding:编码,建议UTF-8 class name strategy:命名选择 推荐选择camel:驼峰命…

Centos下rpm和yum执行卡住问题(已解决)

问题描述 执行rpm和yum卡住, 没有任何报错信息,且无法 ctrl c 终止,只能通过后台 kill -9 杀死。 问题排查: 查看yum日志:yum -vv 软件包 会发现卡在 loading keyring from rpmdb,即load DB存在问题。 …

MSPM0G3507——MPU6050读取数据显示在OLED上

移植的立创L1306的部分代码,亲测能用,要源码的评论即可,在CCSTHEIA打开

【代码管理的必备工具:Git的基本概念与操作详解】

一、Git 初识 1.提出问题 不知道你工作或学习时,有没有遇到这样的情况:我们在编写各种⽂档时,为了防止⽂档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出⼀个副本,比如: “…

推荐几款漂亮的代码字体

Visual Studio Code 中字体看时间长了就会产生幻觉,于是今天看到有人推荐漂亮的代码字体,于是自己也推荐几款: 需要注意的是,大部分网上的教程都建议使用混合字体,即使用微软雅黑与某种等宽字体混合。但事实上&#x…