from flask import Flask, jsonify, render_template, session, redirect, url_for, request import os import logging import config from routes import register_blueprints from utils.model_service import text_classifier # 设置日志 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) # 创建Flask应用 app = Flask(__name__) app.config.from_object(config) app.secret_key = config.SECRET_KEY # 确保上传目录和临时目录存在 os.makedirs(os.path.join(app.root_path, config.UPLOAD_FOLDER), exist_ok=True) os.makedirs(os.path.join(app.root_path, 'temp'), exist_ok=True) # 注册所有路由蓝图 register_blueprints(app) # 初始化文本分类模型 @app.before_first_request def initialize_model(): if not text_classifier.initialize(): app.logger.error("模型初始化失败!") else: app.logger.info("模型初始化成功!") @app.route('/') def index(): # 检查用户是否已登录 if 'user_id' in session: return redirect(url_for('dashboard')) return render_template('login.html') @app.route('/register') def register_page(): return render_template('register.html') @app.route('/dashboard') def dashboard(): # 检查用户是否已登录 if 'user_id' not in session: return redirect(url_for('index')) return render_template('dashboard.html', user=session.get('user_info')) # 404 错误处理 @app.errorhandler(404) def page_not_found(e): return render_template('error.html', error='页面未找到'), 404 # 500 错误处理 @app.errorhandler(500) def internal_server_error(e): return render_template('error.html', error='服务器内部错误'), 500 if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=50004)