我想在 django 模板中显示进度条,基于 django post process/progress(form is ajax submit)。可能吗?
Posted
技术标签:
【中文标题】我想在 django 模板中显示进度条,基于 django post process/progress(form is ajax submit)。可能吗?【英文标题】:I want to show progress bar in django template, on the basis of django post process/progress(form is ajax submit). is it possible? 【发布时间】:2017-01-26 20:03:14 【问题描述】:def post(self, request, *args, **kwargs):
if attorney_data_list:
for i in len(attorney_data_list):
if(index%3 == 0):
process_percent = int(100 * float(index) / float(len(case_data_list)+1))
else:
pass
我希望在每个 for 循环的 django 模板中都有这个 process_percent 值。这可能吗?
【问题讨论】:
【参考方案1】:没有。标准 HTTP 连接是基于请求/响应的,这意味着您只有在功能完全运行后才将响应发送到浏览器。 要在此函数中提供当前进程,您可能需要使用 websocket,尽管我对它们并不十分熟悉。
使用标准 HTTP 请求,您可以使用数据库来存储 process_percentage,并使用另一个 ajax-request 从数据库中检索 process_percentage 并将其发送到浏览器。
【讨论】:
感谢您的回复。你在这里的建议在逻辑上是正确的。但我有一个查询。每次执行此任务时都访问数据库的正确方法吗? 问题是,使用 HTTP 您没有机会向客户端发送中间消息。可能最好的方法是使用 websockets,如果我理解正确的话,它可以完美地用于你需要的东西。使用标准 HTTP,您将需要使用一些解决方法,例如每次访问数据库。当然,您也可以使用某种可以从不同线程而不是 DB 访问的内存中存储。以上是关于我想在 django 模板中显示进度条,基于 django post process/progress(form is ajax submit)。可能吗?的主要内容,如果未能解决你的问题,请参考以下文章
我想在进度条文本(变量)中显示处理数据,这在 AsyncTask 类的doingBackground()方法中发生了变化[关闭]
ModelForm (Django) 中 FileField 上传的进度条