""" 数富AI - Flask 后端 管理后台(页面 web_source/ 与 /api/admin/* 蓝图)已整体迁移至 Java + Vue (/admin-vue/,见 docs/specs/11-flask-removal-cutover.md,旧代码于 task-283 删除)。 本进程当前只保留客户端仍在使用的版本公开 API:/api/version、/api/version/latest (桌面客户端 app_client 的更新检查仍以本进程 15124 为 base_url,切换前勿下线)。 """ import os import secrets from flask import Flask from flask_cors import CORS from utils.db import close_db, init_db from blueprints.version import version_bp BASE_DIR = os.path.dirname(os.path.abspath(__file__)) app = Flask(__name__) # CORS配置:限制为可信域名(版本检查由桌面客户端/网页发起,跨域仍受限) CORS(app, resources={ r"/api/*": { "origins": [ "http://localhost:*", "http://127.0.0.1:*", "https://*.aishufu.top", "http://*.aishufu.top" ], "methods": ["GET", "POST", "PUT", "DELETE", "OPTIONS"], "allow_headers": ["Authorization", "Content-Type", "X-Requested-With", "X-Device-Id"], "supports_credentials": True } }) app.secret_key = os.environ.get('SECRET_KEY', secrets.token_hex(32)) # 注册蓝图:仅版本公开 API(管理后台 API 已迁 Java,见模块 docstring) app.register_blueprint(version_bp) # 请求级数据库连接随请求结束释放(utils/db.get_db 复用同一连接) app.teardown_appcontext(close_db) def run_app(host='0.0.0.0', port=15124): init_db() app.run(host=host, port=port, threaded=True, use_reloader=False) if __name__ == '__main__': run_app()