【fastapi】项目目录架构设计

一. 前言

FastAPI可能更倾向于使用模块化的方式,比如按功能划分目录。

二. 【fastapi】架构示例

1.适用于中大型项目的

myfastapi/
├── .env                    # 环境变量文件
├── .gitignore
├── Dockerfile
├── docker-compose.yml
├── requirements.txt        # 或使用 poetry/pipenv
├── README.md
│
├── src/                    # 项目主目录
│   ├── main.py             # 应用入口文件
│   │
│   ├── core/               # 核心配置
│   │   ├── config.py       # 配置加载
│   │   └── security.py     # 安全相关(如 JWT)
│   │
│   ├── api/                # API 路由
│   │   ├── v1/             # API 版本控制
│   │   │   ├── endpoints/
│   │   │   │   ├── auth.py
│   │   │   │   ├── users.py
│   │   │   │   └── items.py
│   │   │   └── routers.py  # 路由聚合
│   │   └── deps.py         # 路由依赖项
│   │
│   ├── models/             # 数据库模型
│   │   └── models.py
│   │
│   ├── schemas/            # Pydantic 模型
│   │   ├── auth.py
│   │   ├── user.py
│   │   └── item.py
│   │
│   ├── services/           # 业务逻辑
│   │   ├── auth_service.py
│   │   ├── user_service.py
│   │   └── item_service.py
│   │
│   ├── db/                 # 数据库相关
│   │   ├── session.py      # 数据库会话管理
│   │   ├── repositories/   # 数据