Django进度条

时间:2013-01-29 23:21:40

标签: python django

我正在使用Django上传文件并使用

subprocess
启动ETL作业

该作业大约需要15秒才能运行,而不是让用户认为页面被冻结,我想显示progress bar

我可以找出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')

1 个答案:

答案 0 :(得分:2)

谢谢@Bula,django-celery是完美的解决方案。

这是一个很好的introductory video开始。