当我打开html文件时,它会按预期显示,当我在文本框中输入数据并提交时,它会将我重定向到localhost/myapp/output/
,但为什么我在文本框中输入的数据未提交,例如像localhost/myapp/output/data_I_submitted
我的基本html文件:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>db app</title>
</head>
<body>
{% csrf_token %}
<form action="output/" method="post" name="Input">
Data : <input type="text" name="text">
<input type="submit" value="submit">
</form>
</body>
</html>
在我的app.urls
文件中:
urlpatterns = patterns('',
url(r'^$',views.index),
url(r'^output/(?P<text>\w+)/$',views.return_data)
)
最后是视图:
def return_data(request,text):
return HttpResponse('entered text ' + text)
答案 0 :(得分:9)
如果您的目标只是获取表单上的文字:
将您的观点更改为
def return_data(request):
return HttpResponse('entered text:' + request.POST['text'])
修改您的网址
urlpatterns = patterns('',
url(r'^$', views.index),
url(r'^output/$', views.return_data)
)
和您的模板
<form action="output/" method="post">
{% csrf_token %}
...
</form>
答案 1 :(得分:1)
您最好查看表单中提交的数据。 您可以使用两种方法将表单数据与表单操作属性的请求一起提交:
获取:赞http://www.google.com/?q=keyword+to+search 您可以通过以下方式访问“关键字+到+搜索”:
request.GET['q']
#or better is:
request.GET.get('q', None)
text 争论未传递给url模式。因此无法以这种方式访问
发表强>: 在此方法中,数据不在请求URL中。 所以通过POST方法访问表单数据submittin 试试这个
request.POST['text'] (
#or better is:
request.POST.get('text', None)
但强烈推荐使用Django表单而不是直接从request.POST或request.GET
访问