63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
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) |