| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- from contextlib import asynccontextmanager
- from fastapi import FastAPI
- from core.cache import initialize_cache
- from core.events import register_events
- from core.settings import app_settings
- from routes import register_routers
- from server.home.index import html_router
- from server.middleware import handle_middleware
- from server.sub_applications import handle_sub_applications
- from utils import logger, RedisUtil
- @asynccontextmanager
- async def lifespan(_app: FastAPI):
- logger.info(f"{app_settings.name} 开始启动")
- try:
- await initialize_cache()
- logger.info(f"{app_settings.name} 启动成功")
- yield
- finally:
- await RedisUtil.close_redis_pool()
- # 初始化FastAPI对象
- app = FastAPI(
- title=app_settings.name,
- description=f"{app_settings.name}接口文档",
- version=app_settings.version,
- lifespan=lifespan,
- )
- # 挂载子应用
- handle_sub_applications(app)
- # 注册路由
- register_routers(app)
- # 加载中间件处理方法(包含异常处理中间件)
- handle_middleware(app)
- app.include_router(html_router)
- # 注册全局事件
- register_events()
|