<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>书籍搜索页面</title> </head> <body> <form action="/index/search_title/" method="get"> <input type="text" name="title"> <input type="submit" value="search_title"> </form> </body> </html>
#用来显示查询页面 def search_ttile_form(request): return render(request,'index/search_title.html') #用来显示查询结果 def serch_title(request): #查询title忽略大小写,所得类型为QuerySet title=Book.objects.filter(title__icontains=request.GET['title']) return render(request,'index/book_list.html',locals())
from django.urls import path from index import views urlpatterns=[ path('search_title_form/',views.search_ttile_form), path('search_title/',views.serch_title), ]
查询一下
,会得到如下所示结果:#修改视图函数 def serch_title(request): if not request.GET.get('title',''): errors=['输入的书名是无效'] #在这里使用列表的原因,是因为随着表单功能的修改可能需要传递多个字段,这时可能会有多个不同的错误信息需要展示。 return render(request,'index/search_title.html',locals()) title=Book.objects.filter(title__icontains=request.GET['title']) return render(request,'index/book_list.html',locals())然后对模板 search_title.html 进行修改,如下所示:
<!--修改表单模板--> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>书籍搜索页面</title> </head> <body> {% if errors %} <ul> {% for error in errors %} <li> {{ error }} </li> {% endfor %} </ul> {% endif %} <form action="/index/search_title/" method="get"> <input type="text" name="title"> <input type="submit" value="查询一下"> </form> </body> </html>当我们再访问 127.0.0.1:8000\index\search_title_form\ 时 ,并且在搜索框输入空值点击查询一下,就会得到如下页面显示:
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有