import subprocess from flask import Flask, render_template, request, jsonify, make_response, redirect

app = Flask(name, template_folder='C:\Users\zh\PycharmProjects\webping\') process = None

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

@app.route('/execute', methods=['POST']) def execute(): global process if request.form['action'] == 'start': if process is not None and process.poll() is None: # 如果进程正在运行,则不执行新的命令 return jsonify({'output': '进程正在运行,请先停止'}) # process = subprocess.Popen(['ping', '1.1.1.1', '-t'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) process = subprocess.Popen(['ping', '1.1.1.1', '-t'], stdout=subprocess.PIPE, shell=True) while True: output = process.stdout.readline() if output == b'' and process.poll() is not None: break if output: output_str = output.decode('gbk').strip() # 将每一行结果实时输出到前端网页上 socketio.emit('output', {'data': output_str}, namespace='/test') print(output_str) return jsonify({'output': '命令已执行'}) # return jsonify({'output': output.decode('gbk').strip()}) elif request.form['action'] == 'stop': if process is not None and process.poll() is None: # 如果进程正在运行,则停止进程 process.terminate() process.wait() process = None return jsonify({'output': '进程已停止'}) else: return make_response(jsonify({'error': '无效的动作'}), 400)

if name == 'main': app.run(debug=True

import subprocessfrom flask import Flask render_template request jsonify make_response redirectapp = Flask__name__template_folder=CUserszhPycharmProjectswebpingprocess = Noneapproutedef index retur

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

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