Django 进度条
我正在使用Django上传文件,并启动一个ETL任务,代码在
subprocess里。
这个任务大约需要15秒才能完成。为了让用户不会觉得页面卡住,我想显示一个进度条。
我能搞定用AJAX更新进度条的部分,但我不知道在子进程运行时怎么返回一个HttpResponse。也许使用线程可以解决这个问题?不过我在这方面没有经验。有人能给我一些建议吗?
这是视图的代码:
def start_job(request):
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES)
if form.is_valid() and form.is_multipart():
save_file(form.cleaned_data['file'])
subprocess.call(["Kitchen.bat", "/file:job.kjb"])
return HttpResponseRedirect('/success/')
else:
form = UploadForm()
return render_to_response('template.html')