diff --git a/electron/config/config.local.js b/electron/config/config.local.js index f22c462..46a0210 100644 --- a/electron/config/config.local.js +++ b/electron/config/config.local.js @@ -43,12 +43,12 @@ module.exports = (appInfo) => { appExit: true, }, python: { - enable: false, + enable: true, name: 'pyapp', cmd: 'python', directory: './python', args: ['./main.py', '--port=7074'], - stdio: "ignore", + stdio: "ignore", // ignore、inherit appExit: true, }, }; diff --git a/python/main.py b/python/main.py index c1fdd14..8576981 100644 --- a/python/main.py +++ b/python/main.py @@ -1,5 +1,9 @@ from flask import Flask, request, jsonify +from flask_cors import CORS import argparse +import signal +import threading +import sys # flask-demo @@ -10,6 +14,9 @@ args = parser.parse_args() app = Flask(__name__) +# 配置 CORS,允许所有来源 +CORS(app) + # 定义路由和处理器 @app.route('/', methods=['GET']) def index(): @@ -22,6 +29,25 @@ def hello(): name = request.args.get('name', 'World') return jsonify({'message': f'Hello, {name}!'}), 200 +# 通过信号来退出服务,否则会出现终端显示退出后,实际进程仍在运行 +# 定义信号处理函数 +def signal_handler(sig, frame): + print("Received signal to terminate the server.") + + # 关闭 Flask 应用 + # func = request.environ.get('werkzeug.server.shutdown') + # if func is None: + # func = lambda: None + # func() + + # 退出主线程 + # threading.main_thread().exit() + sys.exit(0) + +# 注册信号处理函数 +signal.signal(signal.SIGTERM, signal_handler) +signal.signal(signal.SIGINT, signal_handler) + if __name__ == '__main__': # 以api方式启动服务会出现警告,请忽略 app.run(port=args.port)