项目一大,所有窗口都写在 main.py 就会烂掉。
FastAPI 官方对大型应用给出的核心工具是 APIRouter。
app/
├── main.py
├── dependencies.py
└── routers/
├── permits.py
└── users.pyrouters/permits.py:
from fastapi import APIRouter
router = APIRouter(prefix="/permits", tags=["permits"])
@router.get("/")
async def list_permits():
return [{"id": 1, "owner": "Ada"}]
@router.get("/{permit_id}")
async def get_permit(permit_id: int):
return {"id": permit_id}main.py:
from fastapi import FastAPI
from .routers import permits
app = FastAPI()
app.include_router(permits.router)APIRouter 可以看成一个“迷你 FastAPI”。