首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有“流文本”的Python脚本的Web接口

带有“流文本”的Python脚本的Web接口
EN

Stack Overflow用户
提问于 2010-10-19 08:37:59
回答 2查看 1.6K关注 0票数 2

我有一个Python命令行脚本,它可能需要一些时间来运行(从5秒到5分),这取决于它所做的检查。该脚本使用许多命令行参数,有些是强制性的,大多数是可选的。

我想对这个脚本进行"webify“化,这样就可以通过Web浏览器访问它,但不需要更改核心python脚本,因此可以从其他地方启动它(比如另一个Python脚本)。

我以前在Apache中使用过mod_python,所以构建一个生成带有表单和提交按钮的网页并从它运行核心Python脚本的python并不是什么大问题。

问题在于核心python脚本的输出。我不想等到它完成后才能在DIV (或帧中)中显示它的输出。一旦它生成一行,我希望在Web接口上显示这一行,这是DIV中的一种文本流。

我知道如何通过HTML页面中包含的Javascript或者外部Javascript文件来实现这一点,而不是通过另一个程序的输出。

知道我怎么能做到这一点吗?我更愿意保留所有的Python+Apache,但是如果真的需要其他的东西(PHP、Javascript,.),我可以接受它。

正如下面诸如此类所建议的,我尝试将核心python脚本的输出重定向到一个临时文件中,并使用我在网络上找到的AJAX日志文件拖车和查看器代码来显示这个文件。

它有点工作,但仍然有一些缓冲,因为行出现在“日志尾页”的几块行,而不是逐行。这很可能是因为AJAX脚本使用计时器重新加载日志文件,每隔X毫秒(脚本中可配置,用于Javascript计时器)。即使我降低了它,它仍然不够快,我的核心脚本,有时可以输出几行非常快。

EN

回答 2

Stack Overflow用户

发布于 2010-10-19 09:06:31

您可以将长脚本的输出记录到文件中,并使用基于javascript计时器的代码定期地提取、解析和显示日志的内容。如果整个日志拖得太多,还可以委托一个更小/更快的服务器端python脚本来解析日志,并将日志的尾部传递给调用的javascript。这就是如何在嵌入式设备中显示路由器日志等。

祝好运。下面是关于Javascript定时器的一个小教程。

票数 1
EN

Stack Overflow用户

发布于 2011-05-29 17:22:34

对于IE和Firefox,如果您流您的响应,它将在提供完整页面之前开始呈现。这样,您就可以将HTML文件中间正在发生的事情输入到日志中。一旦进程完成,就可以正常地呈现页面的其余部分。

为了让一个普通的Python模板引擎能够使用它,您将不得不经历一些卷积,因为它们往往在一次尝试中完成所有事情。

Chrome似乎不太喜欢这一点(我希望这是一个webkit的东西,所以你也可以从这个技巧中打折Safari ),我对Opera不太确定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3966567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档