首页/新闻资讯/正文详情

Django入门教程(二十五):博客项目实战(六)——分类筛选与关键词搜索

发布时间:2026/9/24 17:45:23 来源:云帆数科 栏目:资讯中心
Django入门教程(二十五):博客项目实战(六)——分类筛选与关键词搜索
一、URL 查询参数查询参数是 URL 中问号后面的部分,如/?category=djangoq=入门。在 Django 视图函数中,通过request.GET获取这些参数。pythondef index(request): # request.GET 是一个类似字典的对象 # .get('key', '默认值') 安全获取参数,不存在时返回默认值 category_slug = request.GET.get('category', '') # 分类筛选 keyword = request.GET.get('q', '') # 搜索关键词 print(f'分类:{category_slug}, 搜索:{keyword}')request.GET与request.POST的对比:特性request.GETrequest.POST数据位置URL 查询字符串请求体可见性可见不可见典型用途筛选、搜索、分页登录、提交表单获取方式request.GET.get()request.POST.get()为什么用.get()而不是[]?python# 不推荐:参数不存在时会抛 KeyError category_slug = request.GET['category'] # 推荐:参数不存在时返回默认值 category_slug = request.GET.get('category', '')二、ORM 链式过滤与 Q 对象筛选和搜索需要动态拼接查询条件。python# 文件路径:blog/views.py 更新 index 函数 from django.shortcuts import render from django.db.models import Q # Q 对象用于组合复杂查询条件 from .models import Post, Category def index(request): """博客首页:展示文章列表,支持分类筛选 + 关键词搜索""" posts = Post.objects.all().order_by('-created_at') # 1. 获取查询参数 category_slug = request.GET.get('category', '') keyword = request.GET.get('q', '') # 2. 按分类筛选 if category_slug: # category__slug:通过外键访问分类表的 slug 字段(双下划线) posts = posts.filter(category__slug=category_slug) # 3. 按关键词搜索(标题或摘要) if keyword: # Q(title__icontains=...) | Q(summary__icontains=...):OR 组合 # icontains:大小写不敏感的包含查询 posts = posts.filter( Q(title__icontains=keyword) | Q(summary__icontains=keyword) ) # 4. 获取所有分类(用于渲染筛选导航) categories = Category.objects.all() context = { 'posts': posts, 'categories': categories, 'category_slug': category_slug, # 传给模板,用于高亮当前选中

相关推荐

MySQL数据库命令
MySQL数据库命令

目录 m结束符 库 1、创建数据库 2、查看数据库 3、选择,进入数据库 4、修改数据库 5、删除数据库 表 一、数据类型 1、数值类型 2、日期时间型 3、字符串类型 二、表的创建 1、表结构的设计 2、创建表 3、查看表 4、表修改 1、修改表名 2、修改字… · 2026/9/24 17:45:17

ROCKY LINUX10安装DOCKER
ROCKY LINUX10安装DOCKER

1.实验环境ROCKY LINUX102.安装脚本#!/bin/bash if command -v docker &> /dev/null; thenecho "Docker 已安装,版本:$(docker --version)" elseecho "Docker 未安装,现在开始安装"#1.安装包 dnf install -y epel-release#2.… · 2026/9/24 17:45:17

数据结构——二叉搜索树(BST)
数据结构——二叉搜索树(BST)

二叉排序树,首先是二叉树1.BST的定义:(1)空树也是二叉搜索树(2)若二叉搜索树的左子树不为空,则其左子树的所有节点中关键值都小于其根节点的关键值(3)若二叉搜索树的右子… · 2026/9/24 17:45:11

朴素贝叶斯实战:真假新闻分类模型从训练到部署
朴素贝叶斯实战:真假新闻分类模型从训练到部署

简介:本资源面向数据挖掘与自然语言处理初学者及进阶学习者,围绕朴素贝叶斯算法构建真假新闻分类模型这一典型文本分类任务,提供从数据准备到模型评估的完整实战方案。压缩包共4个文件,约27.2MB,包含Fake.csv与True.cs… · 2026/9/24 18:15:55

ST-Transformer交通流预测:Python+PyTorch实战指南
ST-Transformer交通流预测:Python+PyTorch实战指南

简介:本资源是一套面向交通大数据分析与智能交通系统开发者的Python实践项目,聚焦于利用深度学习解决城市交通流短时预测问题。项目基于时空变换网络(ST-Transformer)架构,融合时空卷积与注意力机制,可有效… · 2026/9/24 18:15:55

swagger-codegen 生成 Jersey2 Java 客户端的 UserApi 使用指南:8 个用户管理端点从调用到源码解析
swagger-codegen 生成 Jersey2 Java 客户端的 UserApi 使用指南:8 个用户管理端点从调用到源码解析

swagger-codegen 生成 Jersey2 Java 客户端的 UserApi 使用指南:8 个用户管理端点从调用到源码解析 【免费下载链接】swagger-codegen swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different l… · 2026/9/24 18:15:55

Python与OpenCV车辆多维识别:YOLO检测+HSV颜色分类实战
Python与OpenCV车辆多维识别:YOLO检测+HSV颜色分类实战

简介:这套基于Python与OpenCV、YOLOv的车辆多维特征识别系统源码包,面向智能交通、安防监控及计算机视觉学习者,提供可直接运行的车色、车品牌、车标、车型识别方案。压缩包共8个文件、约8.7MB,主要包含两个Python主程序&#xff… · 2026/9/24 18:15:55

基于深度学习的智能FAQ问答系统:从语义匹配到精排的工程实践
基于深度学习的智能FAQ问答系统:从语义匹配到精排的工程实践

简介:这份资源面向希望入门或实践智能问答的开发者与个人学习者,提供了一套基于深度学习的FAQ问答系统完整实现方案,可用于客服、教育、技术支持等场景的问答检索与答案匹配。压缩包共45个文件,约49KB,以24个Python脚本… · 2026/9/24 18:15:55

电子合同建筑装修场景测评:分包到班组,哪类合同最该先签
电子合同建筑装修场景测评:分包到班组,哪类合同最该先签

一个装修公司在工地现场跟班组签劳务协议,用的是打印好的纸,签完塞进文件夹带回项目部。三个月后文件夹找不到了,班组来要结算,双方对当初约定的单价各执一词。 建筑装修行业的合同管理有个天然劣势:签合同的地方在工地… · 2026/9/24 18:15:48

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码