python - 在 Django 中编写一个非常基本的搜索表单

标签 python html django search django-forms

所以我正在尝试完成一些非常简单的事情。我想在我的搜索框中输入一个术语,并将其显示在结果页面上。

我的表单 HTML 是

<form method="get" action="/results/" class="navbar-form pull-right">
<input type="text" id="searchBox" class="input-medium search-query" name="q" placeholder="Search">
<input type="submit" class="btn" value="Search" >
</form>

views.py 看起来像这样:

def search(request):
    query = request.GET['q']
    t = loader.get_template('template/results.html')
    c = Context({ 'query': query,})
    return HttpResponse(t.render(c))

最后结果模板包含:

<div>You searched for: {{ query }} </div>

这是 urls.py

urlpatterns = patterns('',
url(r'^home/$', 'search.views.home'),
url(r'^results/$', 'search.views.results'),

{{ query }} 空间中没有显示任何内容。

最佳答案

好的,所以在您的 views.py 中处理搜索的操作应该是 search 但正如我在您的 urls.py 中所怀疑的那样您不会在任何地方调用 search 方法。

你在哪里执行search方法?

网址应该是这样的:

urlpatterns = patterns('',
url(r'^home/$', 'search.views.home'),
url(r'^results/$', 'search.views.search'),
# or at least have a url for the search view

注意表单中的 action 属性

它是action="/results/"。这意味着结果 View 应该是处理表单的 View 。您也可以将其更改为 action="/search/" 并使您的 url 如下所示:

urlpatterns = patterns('',
url(r'^home/$', 'search.views.home'),
url(r'^results/$', 'search.views.results'),
url(r'^search/$', 'search.views.search'),

关于python - 在 Django 中编写一个非常基本的搜索表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16904173/

相关文章:

python - Tweepy 不返回使用 StreamingClient 的包含对象

python - 更新列类型JsonBlob的mysql表行

Javascript 从跨度中获取值

html - 应用程序浏览器中的 Instagram 正在转移所有点击事件

python - 为什么我的图像上传到 Django Rest Framework 后无法读取?

django - Wagtail:如何拥有多种类型的管理员

python - 无法导入 Decimal 模块

python - matplotlib:将特殊数学符号添加到 xticklabels

html - 如何使用 Html/Css 从 slider 背景中删除阴影?

python - 在django中上传到s3之前如何压缩图像?