架构设计

Python 后端分层架构:FastAPI 与 Django 的工程化包结构

Python 项目容易写成「脚本堆」。本文用架构图对比 FastAPI 与 Django 的分层、依赖注入与 Repository 模式落地。

2026-06-04T14:12:57.454Z

Python 后端分层架构:FastAPI 与 Django 的工程化包结构

Python 后端分层架构:FastAPI 与 Django 的工程化包结构

Python 后端的两种主流

FastAPI Django
风格 轻量 API 优先 全栈 batteries included
ORM SQLAlchemy / Tortoise Django ORM
适用 AI 服务、微 API 管理后台、内容站

二者都能分层,别在 route/view 里写 SQL

FastAPI 分层架构图

FastAPI 推荐结构

app/
├── api/           # routers,只做 HTTP
├── schemas/       # Pydantic 入出参
├── services/      # 业务用例
├── repositories/  # DB 访问
├── models/        # SQLAlchemy models
├── core/          # config, deps, security
└── main.py

依赖注入:Depends(get_db)Depends(get_current_user),便于测试 mock。

Django 推荐结构

App 划领域,而非按技术层拆散:

blog/
├── posts/         # models, views, serializers, urls
├── users/
└── core/          # 共用工具、基类

Django 多 App 模块划分示意

复杂业务可引入 Service 层posts/services.py),避免 fat views。

与 AI 项目结合

RAG / Agent 服务常见拆分:

不要把 embedding 逻辑写在 router 里

异步 Python

FastAPI 支持 async def,但注意:

小结

Python 架构图先画 router → service → repo,再选 FastAPI 或 Django。AI 功能当作 独立 service 模块,避免与 CRUD 耦合成一团。


参考:FastAPI/Django 官方最佳实践 · 作者 RAG 项目经验。

标签