修改代码如下所示:

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"

from flask import Flask request render_templatefrom subprocess import Popen PIPEapp = Flask__name__ template_folder=Dpythonwebpingtestprocess = Noneapproutedef index return render_templateindexhtml

原文地址: http://www.cveoy.top/t/topic/iT3C 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录