Django搜索页功能的实现
1、打开命令行窗口新建Django工程,并在工程下创建一个应用,命令如下:
django-admin startproject djsearch
cd djsearch
python manage.py startapp book

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',
],
},
},
]

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)


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

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

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)
]

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)

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>

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

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