from flask import Flask request render_templatefrom subprocess import Popen PIPEapp = Flask__name__ template_folder=Dpythonwebpingtestprocess = Noneapproutedef index return render_templateindexhtml
修改代码如下所示:
from flask import Flask, request, render_template
from subprocess import Popen, PIPE
app = Flask(__name__, template_folder='D:\\python\\webping\\test\\')
process = None
@app.route('/')
def index():
return render_template('index.html')
@app.route('/start', methods=['POST'])
def start():
global process
times = request.form.get('times')
command = f"ping 1.1.1.1 -n {times}"
process = Popen(command, shell=True, stdout=PIPE, stderr=PIPE)
return 'Started', 200
@app.route('/stop', methods=['POST'])
def stop():
global process
if process:
process.terminate()
process = None
return 'Stopped', 200
@app.route('/output', methods=['GET'])
def output():
global process
if process:
output = process.stdout.read()
return output, 200
else:
return 'No process running', 200
if __name__ == "__main__":
app.run(port=5000)
在上述代码中,我们增加了一个新的路由 /output,用于获取正在运行的ping命令的输出。当访问 /output 路由时,如果有正在运行的进程,我们将读取进程的标准输出并返回给客户端。如果没有正在运行的进程,则返回消息 "No process running"
原文地址: http://www.cveoy.top/t/topic/iT3C 著作权归作者所有。请勿转载和采集!