from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate from flask_cors import CORS import os from dotenv import load_dotenv # 加载环境变量 load_dotenv() # 导入新的配置系统 from config import get_config # 初始化扩展 db = SQLAlchemy() migrate = Migrate() def create_app(config_class=None): """ 应用工厂函数 使用新的配置系统自动选择环境配置 """ app = Flask(__name__, template_folder='templates', static_folder='../static') # 如果没有指定配置类,使用新的配置系统 if config_class is None: config_class = get_config() app.config.from_object(config_class) # 初始化配置 config_class.init_app(app) # 启用跨域支持 CORS(app, origins=app.config.get('CORS_ORIGINS', ['*'])) # 初始化扩展 db.init_app(app) migrate.init_app(app, db) # 注册蓝图 from src.flask_prompt_master.routes import main_bp app.register_blueprint(main_bp) # 注册收藏蓝图 from src.flask_prompt_master.routes.favorites import favorites_bp app.register_blueprint(favorites_bp) # 注册认证蓝图 from src.flask_prompt_master.routes.auth import auth_bp app.register_blueprint(auth_bp) # 注册饭菜规划蓝图 from src.flask_prompt_master.routes.meal_planning import meal_planning_bp app.register_blueprint(meal_planning_bp) # 注册古诗词解析蓝图 from src.flask_prompt_master.routes.poetry import poetry_bp app.register_blueprint(poetry_bp) # 初始化后台管理 from src.flask_prompt_master.admin import init_admin init_admin(app) # 记录应用启动信息 app.logger.info(f"应用启动 - 环境: {os.environ.get('FLASK_ENV', 'development')}") app.logger.info(f"调试模式: {app.config.get('DEBUG', False)}") app.logger.info(f"数据库: {app.config.get('SQLALCHEMY_DATABASE_URI', 'Not set')}") return app