Django Q()函数

Q() 函数的作用

在Django中,Q()函数是一个非常有用的工具,主要用于构建复杂的查询。它允许你创建复杂的查询语句,包括AND、OR和NOT逻辑操作。这对于处理复杂的数据库查询特别有用,特别是在你需要组合多个条件或处理复杂的过滤逻辑时。

Q对象允许你使用关键字参数或Q对象的组合来构建查询。Q对象可以被链接在一起,使用

&

表示AND,

|

表示OR,

~

表示NOT。

示例

1,添加模型

Test/app11/models.py

from django.db import modelsclass Post(models.Model):title = models.CharField(max_length=200)content = models.TextField()pub_date = models.DateTimeField('date published')class Book(models.Model):title = models.CharField(max_length=100)author = models.CharField(max_length=100)publication_date = models.DateField()price = models.DecimalField(max_digits=5, decimal_places=2)def __str__(self):return self.title

 

2,添加视图函数

  1. 查询所有标题包含"Python"的书籍。
  2. 查询所有作者为"John Doe"的书籍。
  3. 查询所有在2020年之后出版的书籍。
  4. 查询所有价格在20到30之间的书籍。
  5. 查询所有标题包含"Python"或作者为"John Doe"的书籍。
  6. 查询所有标题包含"Python"且价格在20到30之间的书籍。
  7. 查询所有不在2020年出版的书籍。

Test/app11/views.py

from django.shortcuts import render
from django.db.models import Qdef book_list_Q(request):# 1. 查询所有标题包含"Python"的书籍# books = Book.objects.filter(Q(title__icontains='Python'))# 2. 查询所有作者为"John Doe"的书籍# books = Book.objects.filter(Q(author='John Doe'))# 3. 查询所有在2020年之后出版的书籍# books = Book.objects.filter(Q(publication_date__year__gt=2020))# 4. 查询所有价格在20到30之间的书籍# books = Book.objects.filter(Q(price__gte=20) & Q(price__lte=30))# 5. 查询所有标题包含"Python"或作者为"John Doe"的书籍# books = Book.objects.filter(Q(title__icontains='Python') | Q(author='John Doe'))# 6. 查询所有标题包含"Python"且价格在20到30之间的书籍# books = Book.objects.filter(Q(title__icontains='Python') & Q(price__gte=20) & Q(price__lte=30))# 7. 查询所有不在2020年出版的书籍books = Book.objects.filter(~Q(publication_date__year=2020))return render(request, '11/book_list.html', {'books': books})

3,添加html代码

Test/templates/11/book_list.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Book List</title>
</head>
<body><h1>List of Books</h1>{% if books %}<ul>{% for book in books %}<li><strong>Title:</strong> {{ book.title }}<br><strong>Author:</strong> {{ book.author }}<br><strong>Publication Date:</strong> {{ book.publication_date }}<br><strong>Price:</strong> {{ book.price }}<br></li>{% endfor %}</ul>{% else %}<p>No books found.</p>{% endif %}
</body>
</html>

4,添加路由地址

Test/app11/urls.py

from django.urls import path
from . import viewsurlpatterns = [path('book_list_Q/', views.book_list_Q, name='book_list_Q'),
]

5,访问页面

http://127.0.0.1:8000/app11/book_list_Q/

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

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

相关文章

HLS加密技术:保障流媒体内容安全的利器

随着网络视频内容的爆炸性增长&#xff0c;如何有效保护视频内容的版权和安全成为了一个亟待解决的问题。HLS&#xff08;HTTP Live Streaming&#xff09;加密技术作为一种先进的流媒体加密手段&#xff0c;凭借其高效性和安全性&#xff0c;在直播、点播等场景中得到了广泛应…

【Neo4j 】学习笔记:GraphRAG 宣言:为 GenAI 添加知识

GraphRAG 宣言:为 GenAI 添加知识 原文 菲利普拉瑟尔图片 菲利普拉瑟尔 7 月 11 日 阅读时长:22 分钟 我们正在进入 RAG 的“Blue Links”时代 GraphRAG 宣言。 我们即将意识到,要想用 GenAI 做任何有意义的事情,你不能只依赖自回归 LLM来做决定。我知道你在想什么:“RAG …

【C语言】联合体(union)

文章目录 1.联合体的含义2. 联合体的声明3. 联合体大小的计算4. 联合体的特点 1.联合体的含义 联合体也叫做共用体&#xff0c;是指联合体的所有成员共用同一块内存空间。这也就说明了&#xff0c;联合体的大小至少是其成员所占空间的最大值。 2. 联合体的声明 #include<…

【整体介绍】HTML和JS编写多用户VR应用程序的框架

一、Networked-Aframe是什么&#xff1f; 简称NAF&#xff0c;底层基于Mozilla的AFrame框架&#xff0c;用HTML和JS编写多用户VR应用程序的框架。 二、特性 支持 WebRTC 和/或 WebSocket 连接。 语音聊天。音频流让您的用户在应用程序内交谈&#xff08;仅限 WebRTC&#xff…

2024全球和国内最常用的弱密码,有没有你的?

密码管理器NordPass分析了来自公开来源的超过4.3TB 的密码数据&#xff0c;找出了当前为止&#xff08;2024年&#xff09;最常用&#xff08;最脆弱&#xff09;的密码。 这些密码主要有下面这些特征&#xff1a; 简单且常用&#xff0c;万年弱密码&#xff0c;比如123456、a…

数据仓库实践:了解和定义指标

指标分类 指标分类主要分为原子指标、派生指标、衍生指标 原子指标 某一业务事件下的度量&#xff0c;是不可再拆分的值&#xff0c;这些值一般有明确业务含义的名称&#xff0c;如库存数量、人员数量; 度量&#xff1a;在维度建模中&#xff0c;将度量称为事实&#xff0c;…

智慧消防建设方案(完整方案参考PPT)

智慧消防系统建设方案旨在通过物联网、大数据与云计算技术&#xff0c;集成火灾自动报警、智能监控、应急指挥等功能于一体。方案部署智能传感器监测火情&#xff0c;实时数据分析预警&#xff0c;实现火灾早发现、早处置。构建可视化指挥平台&#xff0c;优化应急预案&#xf…

Python中发送邮件的艺术:普通邮件、PDF附件与Markdown附件

用的是qq邮箱,具体获取smtp的password可以看这个文章 获取密码 Python中发送邮件的艺术:普通邮件、PDF附件与Markdown附件 在今天的博客中,我们将探讨如何使用Python的smtplib库来发送电子邮件,包括发送普通文本邮件、携带PDF文件的邮件和附带Markdown文件的邮件。这些功能…

视频号助手获取feedId

1.登陆视频号 2.内容管理-视频 3.视频后分享

Java实习记录 1 ——初入职场

Java实习记录 1 ——初入职场 引言正文收获 引言 在几个月的春招过程中&#xff0c;在完成学校学业的同时&#xff0c;进行投简历、笔试和面试。得益于较为扎实的技术基础&#xff0c;在暑假来临之际&#xff0c;找到了第一份实习工作。目前已入职将近半个月。记录一下实习经历…

码农生涯问题杂记

Linux GCC编译通过&#xff0c;Vistual Studio编译报莫名奇妙错误 Q&#xff1a;工作中需要测试一个JNA程序&#xff0c;想着Windows方便&#xff0c;所以就在Windows进行动态库的编译&#xff0c;然后在编译过程中&#xff0c;对应的代码在Linux系统GCC编译是成功的&#xff…

前端面试题日常练-day94 【Less】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末 在Less中&#xff0c;以下哪个功能用于处理文本换行&#xff1f; a) wrap-text() b) word-wrap() c) text-wrap() d) line-break() Less中的Variables是用来做什么的&#xff1f; a) 控制元素位置 b)…

Git 用法

基本介绍 版本控制工具用处&#xff1a; 备份代码还原协同开发追溯 版本控制工具 1、集中式版本控制工具 版本库是集中存放在中央服务器的&#xff0c;team 里每个人 work 时从中央服务器下载代码&#xff0c;是必须联网才能工作&#xff0c;局域网或互联网。个人修改后然后…

【BUG】已解决:WslRegisterDistribution failed with error: 0x800701bc

已解决&#xff1a;WslRegisterDistribution failed with error: 0x800701bc 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第二篇 Linux系统编程篇-第三十一章 文件IO和标准IO

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

MySQL_基础知识

目录 一、数据库 二、数据库操作 2.1 显示当前数据库 2.2 创建数据库 2.3 删除数据库 2.4 使用数据库 三、数据类型 3.1 数值类型 3.2 字符串类型 3.3 日期类型 四、表的操作 4.1 创建表 4.2 显示当前库中的表 4.3 查看表结构 4.4 删除表 总结 一、数据库 数据…

WHAT - Tailwind CSS 的灵活布局(Flex Grid)

目录 Flexbox 布局1. 启用 Flexbox2. 主轴方向3. 交叉轴对齐方式4. 主轴对齐方式5. 包裹子元素的方式6. 子元素 Flex 属性综合示例 Grid 布局1. 启用 Grid2. 定义列数3. 列和行的定义4. 列和行的间隔5. 行和列的大小6. 位置和对齐综合示例 总结 查看 Tailwind CSS 的官方文档&a…

深度学习落地实战:人脸面部表情识别

前言 大家好,我是机长 本专栏将持续收集整理市场上深度学习的相关项目,旨在为准备从事深度学习工作或相关科研活动的伙伴,储备、提升更多的实际开发经验,每个项目实例都可作为实际开发项目写入简历,且都附带完整的代码与数据集。可通过百度云盘进行获取,实现开箱即用 …

AV1技术学习: Compound Prediction

一、双向 Compound Prediction AV1支持两个参考帧的预测通过多种复合模式线性组合。复合预测公式为 其中&#xff0c;权重m(x, y) is scaled by 64 以进行整数计算&#xff0c;R1(x, y)和R2(x, y)表示两个参考块中位于(x, y)的像素。P(x, y)将按比例缩小 1/64 以形成最终的预测…

【PPT笔记】1-3节 | 默认设置/快捷键/合并形状

文章目录 说明笔记1 默认设置1.1 OFFICE版本选择1.1.1 Office某某数字专属系列1.1.2 Office3651.1.3 产品信息怎么看 1.2 默认设置1.2.1 暗夜模式1.2.2 无限撤回1.2.3 自动保存&#xff08;Office2013版本及以上&#xff09;1.2.4 图片压缩1.2.5 字体嵌入1.2.6 多格式导出1.2.7…