1

我试图了解使用 Django 应用程序的 GET 与 POST 并遇到以下问题,

即使method="post"search_form.html我输入内容并输入提交时,它也传递了一个 GET 方法,因为我看到在 url 中传递了参数。即使 request.GET 也能够访问该值。

我认为仅根据您在 METHOD 中给出的内容确定它是GET还是POST.

网址.py

urlpatterns = patterns('',url(r'^$',views.index,name='index'),
        url(r'^meta/',views.display_meta,name='meta'),
        url(r'^search-form/$',views.search_form),
                url(r'^search/$',views.search),

视图.py

def search(request):
    if 'q' in request.GET:
        message = 'You searched for :%r' % request.GET['q']
    else:
        message = 'You submitted an empty form'

    return HttpResponse(message)

search_form.html

<html>
<head>
    <title>Search</title>
</head>
<body>
    <form action="/search/" method="post">
        <input type="text" name="q">
        <input type="submit" value="Search">
    </form>
</body>
</html>

任何输入将不胜感激。

4

1 回答 1

0

您可以通过以下方式找到请求方法:

request.META.get('REQUEST_METHOD')

顺便提一句。您应该考虑对搜索表单等内容使用通用视图,这要容易得多。

于 2013-02-22T07:35:18.640 回答