跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

编写Django应用程序的搜索视图

本教程演示如何利用Django框架和
searchvector
类构建高效的搜索视图。 为什么需要搜索? searchquery对象将用户输入的关键词转化为数据库可执行的搜索查询。默认情况下,所有关键词都会经过词干提取算法处理,然后在所有结果文档中寻找匹配项。 配置PostgreSQL数据库 确保你的Django项目已正确配置PostgreSQL数据库。 在你的项目
settings.py
文件中,数据库配置应如下所示:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'my_database', 'USER': 'database_user', 'PASSWORD': 'database_users_password', 'HOST': '127.0.0.1', 'PORT': '5432', } }
在
urls.py
文件中定义搜索视图的URL: Python 3.14.3 微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。 下载
from django.urls import path from . import views app_name = 'core' urlpatterns = [ path('search/', views.search_view, name='search-view'), ]
创建搜索视图。在
views.py
中:
from blog.models import Article from django.contrib.postgres.search import SearchVector from django.shortcuts import render def search_view(request): search_results = '' query = '' if request.method == 'POST': query = request.POST.get('q') search_results = Article.objects.annotate(search=SearchVector('title', 'content')).filter(search=query) context = {'search_results': search_results} return render(request, 'search.html', context)
最后,创建名为
search.html
的模板文件来显示搜索结果。(模板内容略,需根据实际需求编写)

相关文章