django 搜索功能的实现

一个很有趣的个人博客,不信你来撩 fangzengye.com



前端表单

将数据送到后端

<form method="get" action="/search/">
  {% csrf_token %}
  <input type="search" placeholder="搜索" required>
  <button type="submit">搜索</button>
</form>

后端views.py


def search(request):
    q = request.GET.get('q')
    error_msg = ''

if not q:
error_msg = '请输入关键词'
return render(request, 'blog/errors.html', {'error_msg': error_msg})

post_list = Post.objects.filter(title__icontains=q)
return render(request, 'blog/results.html', {'error_msg': error_msg,
'post_list': post_list})

展示结果results.html


{% if error_msg %}
    <p>{{ error_msg }}</p>
{% endif %}

{% for post in post_list %}
<div>
在这里显示文章的相应信息
</div>
{% empty %}
<div class="no-post">
没有搜索到符合条件的文章
</div>
{% endfor %}

映射urls.py

from django.conf.urls import url
urlpatterns = [
    # 其他 url 配置
    url(r'^search/$', views.search, name='search'),
]

详情参考

posted @ 2020-09-01 21:17  开源的Boy  阅读(276)  评论(0)    收藏  举报