v1.8.0: 模块化重构 + 后台登录认证

This commit is contained in:
2026-06-01 18:30:53 +08:00
parent e512ba7144
commit b869da6fe7

95
app.py Normal file
View File

@@ -0,0 +1,95 @@
"""
ParamHub - 参数百科
AI大模型与硬件参数速查平台
v1.8.0 - 模块化重构 + 后台登录认证
"""
from flask import Flask, request, jsonify, session, redirect, url_for
from flask_cors import CORS
from datetime import timedelta
from config import SECRET_KEY
from utils import load_config
# ─── Flask 应用创建 ────────────────────────────────────────────
app = Flask(__name__, static_folder='static', static_url_path='/static')
CORS(app)
app.secret_key = SECRET_KEY
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=24)
# ─── 全局认证拦截 ──────────────────────────────────────────────
@app.before_request
def check_auth():
"""所有 POST/PUT/DELETE 请求需要登录(登录接口和阅读计数除外)"""
if request.method in ('POST', 'PUT', 'DELETE'):
# 登录接口本身不需要认证
if request.path == '/login':
return None
# 阅读计数公开访问
if request.path.endswith('/view'):
return None
# 检查 session
if not session.get('authenticated'):
if request.path.startswith('/api/'):
return jsonify({'error': '未登录,请先登录', 'redirect': '/login'}), 401
return redirect(url_for('auth.login_page'))
return None
# ─── 注册蓝图 ──────────────────────────────────────────────────
from auth import auth_bp
app.register_blueprint(auth_bp)
from modules.routes.pages import pages_bp
app.register_blueprint(pages_bp)
from modules.routes.api_models import models_bp
app.register_blueprint(models_bp)
from modules.routes.api_gpus import gpus_bp
app.register_blueprint(gpus_bp)
from modules.routes.api_cpus import cpus_bp
app.register_blueprint(cpus_bp)
from modules.routes.api_categories import cat_bp
app.register_blueprint(cat_bp)
from modules.routes.api_knowledge import knowledge_bp
app.register_blueprint(knowledge_bp)
from modules.routes.api_items import items_bp
app.register_blueprint(items_bp)
from modules.routes.api_smart import smart_bp
app.register_blueprint(smart_bp)
from modules.routes.api_search import search_bp
app.register_blueprint(search_bp)
from modules.routes.api_config import config_bp
app.register_blueprint(config_bp)
from modules.routes.api_upload import upload_bp
app.register_blueprint(upload_bp)
from modules.routes.api_pin import pin_bp
app.register_blueprint(pin_bp)
# ─── 启动 ──────────────────────────────────────────────────────
if __name__ == '__main__':
print("=" * 50)
print("ParamHub - 参数百科 v1.8.0")
print("=" * 50)
print("模块化重构 + 后台登录认证")
print(f"访问地址: http://localhost:16031")
print(f"后台管理: http://localhost:16031/admin")
print(f"默认密码: admin123 (可在 config.json 中修改)")
print("=" * 50)
app.run(host='0.0.0.0', port=16031, debug=False)