72 lines
2.0 KiB
Python
72 lines
2.0 KiB
Python
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 |