python - 如何在Flask webapp中拆分子进程的输出行
问题描述
如何拆分脚本的输出并在烧瓶 webapp 中显示?
from flask import Flask, render_template, redirect, url_for, request
import subprocess
import os
import datetime
import time
app = Flask(__name__)
def api():
cmd = ["/usr/dummy.ksh"]
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, universal_newlines=True)
stdout, stderr = p.communicate()
return stdout
@app.route("/")
def index():
return render_template('subprocess.html', subprocess_output=api())
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)
“我希望在烧瓶应用程序上逐行查看虚拟脚本的标准输出。但是,我将所有输出都放在一个字符串中。
烧瓶网页中的所需输出:
Script completed step 1
script completed step 2
all done...exiting
烧瓶网页中的当前输出:
Script completed step 1 script completed step 2 all done...exiting
解决方案
您可以将输出包装在
<pre>...</pre>
标签中。您可以在输出中添加 HTML 换行符,例如:
return "<br/>".join(stdout.splitlines())
推荐阅读
- matlab - Simulink Design Verifier:输入参数 #1 是无效的 cvdata 对象
- android - 包 AlertDialog 不存在
- typescript - VSCode TypeScript rxjs map() 运算符在重复足够多后会丢失类型
- nginx - 无法从外部 IP 地址访问 Tomcat
- arrays - C中函数参数中的固定数组或指针之间的区别?
- javascript - 合并两个数组对象:一个有键值对,另一个只是数组
- javascript - 如何使用 mapbox-gl 为特征点设置单独的布局属性?
- javascript - 克隆表格中的滚动条时遇到问题
- c# - 我如何在 GTK+# 中使用 GtkGLArea?
- html - 自动增加 Class CSS 中的数字