得到vs后Django形式

时间:2013-02-22 05:15:44

标签: django http

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

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

我认为只根据您在METHOD中提供的内容确定它是GET还是POST

urls.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),

views.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>

非常感谢任何投入。

1 个答案:

答案 0 :(得分:0)

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

request.META.get('REQUEST_METHOD')

顺便说一下。你应该考虑使用generic views for stuff like search forms,这要容易得多。