免责声明:我是django和python的新手,但拥有Drupal编程经验。
我花了最后3个小时搜索一个简单的方法,将jqueryui进度条集成到我的django(开发服务器)站点(在localhost上运行sqlite),其中栏没有显示文件上传但是另一个python脚本的进度(我需要通过django web前端将数百张照片从许多SD卡转移到本地主机。我的网络应用程序已经有一个工作的jquery对话框,我可以正确发出和接收简单的ajax请求($ .get ...
所以,我现在的问题是这个方法。我应该使用线程,子进程,会话还是某种组合?任何片段(或完整的演示,以帮助我)?
如果线程是答案,我认为这没关系? http://nedbatchelder.com/blog/201103/quick_and_dirty_multithreaded_django_dev_server.html
答案 0 :(得分:0)
您可以使用django-ztask或celery之类的东西来进行后台处理。
用户所在的页面应该使用ajax查询进度%的视图,或者只是重新加载自己并显示更新的进度条。
答案 1 :(得分:0)
如果你想要它是实时的,你可以使用长轮询,但有很多事情要做。
脑死亡最简单的方法应该是使用一个单独的进程作为worker并将进程更新为临时文件。 (此文件只有1行,即进度的百分比)。
您的视图应该只是获取文件并读取它并按原样返回客户端。由于临时文件上的信息是一行进度指示器(例如“79”表示79%),因此使用Javascript进行解析非常容易。
然后在浏览器上,您可以每隔5秒通过ajax get请求调用您的视图并更新进度条。