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 = ''<span class="token keyword">if</span> <span class="token operator">not</span> q<span class="token punctuation">:</span> error_msg <span class="token operator">=</span> <span class="token string">'请输入关键词'</span> <span class="token keyword">return</span> render<span class="token punctuation">(</span>request<span class="token punctuation">,</span> <span class="token string">'blog/errors.html'</span><span class="token punctuation">,</span> <span class="token punctuation">{<!-- --></span><span class="token string">'error_msg'</span><span class="token punctuation">:</span> error_msg<span class="token punctuation">}</span><span class="token punctuation">)</span> post_list <span class="token operator">=</span> Post<span class="token punctuation">.</span>objects<span class="token punctuation">.</span><span class="token builtin">filter</span><span class="token punctuation">(</span>title__icontains<span class="token operator">=</span>q<span class="token punctuation">)</span> <span class="token keyword">return</span> render<span class="token punctuation">(</span>request<span class="token punctuation">,</span> <span class="token string">'blog/results.html'</span><span class="token punctuation">,</span> <span class="token punctuation">{<!-- --></span><span class="token string">'error_msg'</span><span class="token punctuation">:</span> error_msg<span class="token punctuation">,</span> <span class="token string">'post_list'</span><span class="token punctuation">:</span> post_list<span class="token punctuation">}</span><span class="token punctuation">)</span>
展示结果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'),
]
我的个人博客fangzengye.com, 欢迎来撩哦!
原文博主: 热衷开源的宝藏Boy
版权声明: 自由转载-非商用-禁止演绎-保持署名| CC BY-NC-ND 3.0
浙公网安备 33010602011771号