Django搜索页功能的实现

2025-10-13 07:43:22

1、打开命令行窗口新建Django工程,并在工程下创建一个应用,命令如下:

django-admin startproject djsearch

cd djsearch

python manage.py startapp book

Django搜索页功能的实现

2、使用开发工具打开上一步创建的工程,修改工程的settings.py注册应用,并添加模板文件目录,修改部分的代码如下:

INSTALLED_APPS = [


   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'book.apps.BookConfig'
]

TEMPLATES = [


   {
       'BACKEND': 'django.template.backends.django.DjangoTemplates',
       'DIRS': [os.path.join(BASE_DIR,'templates')],
       'APP_DIRS': True,
       'OPTIONS': {
           'context_processors': [
               'django.template.context_processors.debug',
               'django.template.context_processors.request',
               'django.contrib.auth.context_processors.auth',
               'django.contrib.messages.context_processors.messages',
           ],
       },
   },
]

Django搜索页功能的实现

3、在应用的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 admin


from .models import BookModel


# Register your models here.
admin.site.register(BookModel)

Django搜索页功能的实现

Django搜索页功能的实现

4、在terminal使用命令生成数据库迁移文件,迁移数据库,创建超级用户

python manage.py makemigrations

python manage.py migrate

python manage.py createsuperuser

Django搜索页功能的实现

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

Django搜索页功能的实现

6、在工程的urls.py文件,include应用的urls.py

from django.contrib import admin


from django.urls import path,include


urlpatterns = [
   path('admin/', admin.site.urls),
   path('book/',include('book.urls'))
]

在应用的urls.py文件,添加到视图的路径

from django.urls import path


from . import views
urlpatterns = [
  path(r'search/',views.search)
]

Django搜索页功能的实现

7、在应用的views.py文件,添加search函数

from django.shortcuts import render


from .models import BookModel
from 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)


Django搜索页功能的实现

8、在工程根目录创建templates文件夹,并在文件夹创建bootlist.html文件,代码如下;

<!DOCTYPE html>


<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>book</title>
</head>
<body>
   <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>

Django搜索页功能的实现

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

Django搜索页功能的实现

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢