我有这样的表格:
<form method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="InputFile">File input</label>
<input type="file" id="exampleInputFile" name="myfile">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
此表单位于我的索引视图中:
def index(request):
return render(request, 'App/index.html')
我想要做的是让用户上传文件,而某些视图必须对其进行一些操作。
问题是我有另一种方法来处理文件:
def do_some_work(request):
if request.method == "POST":
data = request.FILES['myfile']
lines = data.split("\n")
...
我试图做的事情,没有任何成功,是链接&#34;提交&#34;按钮到这个视图
我不想刷新页面。我知道作为一个http请求页面必须刷新
所以问题:
在这种情况下,是否需要在urls.py中使用另一个url来处理此方法?类似的东西:
url(r'^work/$', views.do_some_work, name='do_some_work'), (I don't know if this is correct, i will figure it out)
点击提交按钮后,我究竟能如何调用此功能?我的表格中是否缺少某些内容?
是否可以不刷新孔页? AJAX?
任何帮助都将非常感激
答案 0 :(得分:0)
我认为你想要更像这样构建它:
# function to parse data
def do_some_work(data):
# do something to data
return processed_data
# view to receive request
def index(request):
if request.method == "POST":
# parse posted data
data = request.FILES['myfile']
request_processed_data = do_some_work(data)
context = {'data':request_processed_data}
return render(request, 'App/index.html', context)
else:
# render form
some_form = someForm()
form_context = {'some_form':some_form}
context = RequestContext(request, form_context)
return HttpResponse(template.render(context))