Initial commit

This commit is contained in:
2026-02-25 15:22:23 +08:00
commit c7138dab9e
84 changed files with 14690 additions and 0 deletions

42
lifespan.py Normal file
View File

@@ -0,0 +1,42 @@
from contextlib import asynccontextmanager
from typing import Callable
from fastapi import FastAPI
from plugin import PluginManager
from uvicorn.server import logger
def active_config():
logger.info("[激活配置] 加载配置 ⚙️")
from config import setting # noqa
def import_router(app: FastAPI):
logger.info("[导入路由] 开始导入路由 🛣️")
from router import router
app.include_router(router)
logger.info("[导入路由] 路由导入完成 ✅")
def install_plugins_after_started(app: FastAPI):
logger.info("[安装插件] 开始安装插件 📦")
from plugin import SpaProxy
plugin_manager = PluginManager(app)
# 安装插件
plugin_manager.register_plugin(SpaProxy(app, dist="frontend/dist"))
logger.info("[安装插件] 插件安装完成 ✅")
@asynccontextmanager
async def lifespan(app: FastAPI, func: Callable = lambda: None):
logger.info("[生命周期] 应用启动 🚀")
active_config()
import_router(app)
install_plugins_after_started(app)
func()
yield
logger.info("[生命周期] 应用关闭 🔧✅")