CryptoAiAdmin项目启动过程详解

1. 启动入口分析

CryptoAiAdmin项目采用 FastAPI 框架构建,其启动过程设计清晰且具有良好的可扩展性。项目的启动入口位于 main.py 文件中,该文件定义了一个命令行应用,提供了三个主要命令:run(启动服务)、revision(生成数据库迁移)和 upgrade(应用数据库迁移)。

1.1 应用创建函数

应用实例的创建通过 create_app() 函数完成:

# 核心应用创建函数
def create_app() -> FastAPI:
    """创建 FastAPI 应用实例"""
    # 导入初始化组件
    from app.plugin.init_app import (
        register_middlewares,
        register_exceptions,
        register_routers,
        register_files,
        reset_api_docs,
        lifespan
    )
    # 导入配置
    from app.config.setting import settings
    
    # 创建FastAPI应用实例,传入配置和生命周期管理器
    app = FastAPI(**settings.FASTAPI_CONFIG, lifespan=lifespan)
    
    # 初始化日志系统
    from app.core.logger import setup_logging
    setup_logging()
    
    # 按顺序注册各种组件
    register_exceptions(app)    # 异常处理器
    register_middlewares(app)   # 中间件
    register_routers(app)       # 路由
    register_files(app)         # 静态文件
    reset_api_docs(app)         # API文档配置

    return app

1.2 服务启动命令

服务启动通过 run() 函数处理,该函数使用 typer 命令行工具提供了环境选择等参数:

@shell_app.command(name="run", help="启动 FastapiAdmin 服务")
def run(env: EnvironmentEnum = typer.Option(EnvironmentEnum.DEV, "--env", help="运行环境 (dev, prod)")) -> None:
    """启动FastAPI服务"""
    try:
        # 设置环境变量
        os.environ["ENVIRONMENT"] = env.value
        
        # 显示启动横幅
        from app.utils.banner import worship
        typer.echo(worship(env.value))

        # 清除配置缓存,确保重新加载配置
        from app.config.setting import get_settings
        get_settings.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kandy_ye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值