FastAPI项目应结构清晰、启动快、易扩展:main.py仅作入口和路由注册;api/按版本和功能拆分路由;schemas/与models/分离校验与ORM模型;config.py和deps.py统一管理配置与依赖。

用 FastAPI 搭建简单 Web 应用,关键不是堆功能,而是结构清晰、启动快、后续好扩展。下面直接说一个够用又不臃肿的项目结构,适合个人小项目或快速验证想法。
核心文件:main.py 是入口
整个应用从这里启动,只放路由注册和应用实例创建,不写业务逻辑。
- 用 FastAPI() 创建 app 实例
- 用 @app.get("/") 这类装饰器挂接口,但只做转发(比如调用
api/v1/items.py里的函数) - 加一句 uvicorn.run("main:app", reload=True) 方便本地调试
按模块拆路由:api/ 目录分版本和功能
把接口按业务或资源归类,避免所有路由挤在 main.py 里。
- 例如:
api/v1/items.py处理商品相关接口,api/v1/users.py处理用户相关 - 每个文件里用 APIRouter() 定义子路由,再在 main.py 中 include 进来
- 路径自动带前缀,比如
router = APIRouter(prefix="/items"),那么@router.get("/list")对应的就是/v1/items/list
数据模型和校验:schemas/ 和 models/ 分开
FastAPI 靠 Pydantic 做请求/响应校验,建议把定义收在 schemas/;如果用 ORM(如 SQLAlchemy),实体类放 models/。
标签: python docker app session ai 路由 环境变量
还木有评论哦,快来抢沙发吧~