我正在为用于探测服务器上的一些活动的大型 Python 脚本编写基于 Web 的 GUI 界面。虽然应用程序本身重量很轻,但我使用 Django 创建 Web GUI,因为我可以重用许多已经内置的功能,例如用户管理等。
我有一个函数,它需要许多逻辑步骤、检查、文件复制。在原版程序中,我们使用日志文件来捕获所有状态。客户想要一个页面,该页面实时显示每个步骤的状态变化。
什么是正确的策略。采取了哪些步骤?进度条不是我需要的,它更像是一个实时的进度报告?您能否建议要采取的步骤或指向任何教程
我正在为用于探测服务器上的一些活动的大型 Python 脚本编写基于 Web 的 GUI 界面。虽然应用程序本身重量很轻,但我使用 Django 创建 Web GUI,因为我可以重用许多已经内置的功能,例如用户管理等。
我有一个函数,它需要许多逻辑步骤、检查、文件复制。在原版程序中,我们使用日志文件来捕获所有状态。客户想要一个页面,该页面实时显示每个步骤的状态变化。
什么是正确的策略。采取了哪些步骤?进度条不是我需要的,它更像是一个实时的进度报告?您能否建议要采取的步骤或指向任何教程
您需要定期从浏览器轮询后端以查看是否有任何更新。这确实假设长时间运行的脚本是异步运行的。定期更新类似于日志文件尾部,有时您会检查是否已将新信息添加到日志中。
有几个现有的 jQuery 插件可以帮助您构建它;jQuery 的 PeriodicalUpdater是一个不错的选择,如果服务器响应在一段时间内没有变化,它会调整轮询间隔。
基本上,使用这样的插件,您将需要一个 Django 视图来返回当前状态,可以说是您的进程的日志文件输出,并让 PeriodicalUpdater 轮询该视图。当然,在 PeriodicalUpdater 的回调函数中,您需要添加一个检查过程是否完成;也许您的服务器视图可能会在“日志”末尾以易于检测的“处理完成”行结束,或者返回仅包含最终状态的响应。