Files
aitsc/src/flask_prompt_master/__init__.py

52 lines
1.3 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)
# 记录应用启动信息
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