<!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号
广州松河信息科技有限公司 版权所有