使用flask python在网络浏览器中获取'top' linux命令的实时输出

Posted

技术标签:

【中文标题】使用flask python在网络浏览器中获取\'top\' linux命令的实时输出【英文标题】:getting realtime output of the 'top' linux command in a web browser with flask python使用flask python在网络浏览器中获取'top' linux命令的实时输出 【发布时间】:2021-10-06 01:18:59 【问题描述】:

目前,我正在构建一个能够执行 shell 命令并将结果获取到 Web 浏览器的应用程序。 我的问题是结果在浏览器上显示很好,但不是实时的。我遇到问题的命令是 Linux 'top' 命令。正如我们所知,此命令会实时发送系统上执行的进程列表以及 CPU、RAM 和实时。可以用 Flask 做到这一点吗??? 我以前看过类似的帖子,但它们对我没有帮助。坦率地说,我对烧瓶还是很陌生,你的帮助对我来说非常有用。提前致谢

【问题讨论】:

这完全有可能,但您需要使用 javascript 来实现“实时”方面。 【参考方案1】:

以下是我尝试过的代码。 (命令在test.sh文件中)

import flask
from shelljob import proc

app = flask.Flask(__name__)

@app.route( '/stream' )
def stream():
    g = proc.Group()
    p = g.run( [ "./test.sh" ] )

    def read_process():
        while g.is_pending():
            
            lines = g.readlines()
            for proc, line in lines:
                yield line
                

    retour = flask.Response( read_process(), mimetype= 'text/json' )
        return retour

@app.route('/exec')
def streaming():
         return flask.render_template('index.html')



if __name__ == "__main__":
    app.run(debug=True)

【讨论】:

以上是关于使用flask python在网络浏览器中获取'top' linux命令的实时输出的主要内容,如果未能解决你的问题,请参考以下文章

python网络数据采集之xpath

在 Flask Web App (Python 3.6.6) 中使用 JS 地理定位

如何在 Python 中获取 JSON 对象(Flask 框架)

Flask模拟NRF

使用 Python 开发 Flask 应用程序时如何自动刷新浏览器?

如何使用 Python 和 Flask 获取请求变量的值 [重复]