Django / Python使用progressbar下载文件

好吧我决定在这里发布这个问题,因为我真的不知道该怎么做,甚至可能.你可能会告诉我这是一个转发左右,但我正在读关于它的类似帖子,它没有帮助我.

这是交易.我有一个django的管理界面,想要从我服务器上的外部站点下载一个文件,其中一个进度条显示了下载的百分比.

下载时我什么也做不了.我尝试在视图中使用call_command运行命令,但它是相同的.

是因为Django服务器是单线程的吗?那么,甚至有可能实现我想做的事情吗?

提前致谢,

最佳答案 这是可能的,但通过隐喻篮球需要一些跳跃.我的答案不是特定于Django,你需要将它翻译成你的框架.

>启动执行实际下载的线程.在下载时,它必须更新用户会话中的某些数据结构(下载的总大小等).
>在浏览器中,启动一个计时器,对“下载状态URL”执行AJAX请求
>为此URL创建一个处理程序,该处理程序从会话中获取状态并将其转换为JSON或您发送到浏览器的一段HTML.
>在AJAX处理程序的success方法中,获取JSON / HTML并将其放入当前页面.除非下载完成(这部分使用JSON更简单),否则请重新启动计时器.

点赞