Django搜索页功能的实现
来源:网络收集 点击: 时间:2024-06-11打开命令行窗口新建Django工程,并在工程下创建一个应用,命令如下:
django-admin startproject djsearch
cd djsearch
python manage.py startapp book

使用开发工具打开上王救一步注侵栗创建的工程,修改工程的settings.py注册应用,并添加模板文件目录,修改部分的代码如下:
INSTALLED_APPS =
TEMPLATES = , APP_DIRS: True, OPTIONS: { context_processors: , }, },]

在应用的models.py创建模型类,代码如下:
from django.db import models# Create your models here.class BookModel(models.Model): name = models.CharField(max_length=50) content = models.TextField(max_length=800)在应用的admin.py注册模型类,代码如下:
from django.contrib import adminfrom .models import BookModel# Register your models here.admin.site.register(BookModel)


在terminal使用命令生成数据库迁移文件,迁移数据库,创建超级用户
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser

登录admin页面,添加若干书籍

在工程的urls.py文件,include应用的urls.py
from django.contrib import adminfrom django.urls import path,includeurlpatterns =
在应用的urls.py文件,添加到视图的路径
from django.urls import pathfrom . import viewsurlpatterns =

在应用的views.py文件,添加search函数
from django.shortcuts import renderfrom .models import BookModelfrom django.db.models import Q# Create your views here.def search(request): sc = request.GET.get(search,None) context = None if sc: print(sc) booklist = BookModel.objects.filter(Q(name__icontains=sc)) context = {booklist:booklist} return render(request,booksearch.html,context)

在工程根目录创建templates文件夹,并在文件夹创建bootlist.html文件,代码如下;
!DOCTYPE htmlhtml lang=enhead meta charset=UTF-8 titlebook/title/headbody form action=/book/search/ input type=text name=search placeholder=搜索书籍... required input type=submit value=提交 /form {% if booklist %} {% for book in booklist %} li{{ book.name }}/li {% endfor %} {% endif %}/body/html

运行服务器,打开搜索页面,输入python,提交后,页面如下图,搜索成功

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_897892.html