gpt4 book ai didi

python - Python 脚本的 Web 界面,带有 "streaming text"

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:03 25 4
gpt4 key购买 nike

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

我想“网络化”这个脚本,使其可以从 Web 浏览器访问它,但不更改核心 python 脚本,因此通过从其他东西(例如另一个 Python 脚本)启动它

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

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

我知道如何从 HTML 页面中包含的 Javascript 或作为外部 Javascript 文件执行此操作,但不知道如何从另一个程序的输出中执行此操作。

知道如何实现这一点吗?我更喜欢将它全部保留为 Python+Apache,但如果确实需要其他东西(PHP、AJAX、Javascript 等),我可以接受它。


根据 whatnick 的建议下面,我尝试将核心 python 脚本的输出重定向到一个临时文件中,并使用 AJAX Logfile Trailer & Viewer 显示该文件。我在网上找到的代码。

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

最佳答案

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

祝你好运。这里有一个关于Javascript Timers的小教程.

关于python - Python 脚本的 Web 界面,带有 "streaming text",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3966567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com