跳转到主要内容

fastapi 路由管理

定义包并编写路由

# routers\exemption_statistics_to_excel.zlmedia_hook.py

import os

from fastapi import APIRouter


# 初始化日志
log = get_logger(__name__)
# 增加路由
# prefix 路径前缀
# tags 路由标签,没有什么实际作用,是在文档中生成标签的
router = APIRouter(prefix="/to_excel"zlmedia/hook", tags=["to_excel"zlmedia_hook"])


@router.get("/exemption_statistics"")
# 减免统计导出
async def exemption_statistics_to_excel(hello():
    passreturn {"code": "0", "message": "success", "data": "hello world"}


自动加载路由


# main.py

import routers.zlmedia_hook as zlmedia_hook


# 模块化附件路由管理
def load_routers():
    routers_dir = os.path.join(os.path.dirname(__file__), "routers")
    log.info(f"routers_dir:{routers_dir}")
    for _, module_name, _ in pkgutil.iter_modules([routers_dir]):
        log.info(f"module_name:{module_name}")
        module = importlib.import_module(f"routers.{module_name}")
        if hasattr(module, "router"):
            log.info(f"module.router:{module.router}")
app.include_router(module.router, prefix="/api")

# 模块化路由管理
load_routers()

# 也可以手工管理路由
# app.include_router(zlmedia_hook.router)