我试图使用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>
非常感谢任何投入。
答案 0 :(得分:0)
您可以通过以下方式找到请求方法:
request.META.get('REQUEST_METHOD')
顺便说一下。你应该考虑使用generic views for stuff like search forms,这要容易得多。