用途:这是一套用于组织 Python 服务的整洁架构参考指南,目标是把业务逻辑与框架关注点分离,使代码可测试、可维护、不依赖具体框架。
主要能力:给出明确的项目结构,分为 domain(核心业务逻辑,不导入框架)、infrastructure(仓储实现、第三方 API 客户端、数据库连接)、api(框架层,如 FastAPI、Flask、路由、依赖注入、错误处理)与 main.py。核心规则是依赖指向内层:domain 不导入 infrastructure 或 api,infrastructure 导入 domain,api 可导入二者。内容覆盖领域模型与 ORM 模型分离、仓储模式的抽象接口与实现、服务层业务逻辑、无框架的构造器依赖注入、框架无关的领域错误层级及其到 HTTP 错误的映射、单元测试与集成测试策略,并列出反模式。
使用方式:domain/models 定义带行为的领域实体与值对象;domain/repositories 定义抽象接口;infrastructure/repositories 用 SQLAlchemy 等实现并做 ORM 与领域模型映射;domain/services 写业务逻辑,仅依赖仓储抽象;api/dependencies.py 手工装配依赖;api/error_handlers.py 将领域错误映射为 HTTP 状态码;测试中服务用 AsyncMock 模拟仓储,仓储用内存 SQLite 做往返持久化测试。
适用场景:需要让 Python Web 服务业务逻辑独立于数据库与 Web 框架、希望服务层可脱离服务器或数据库测试的项目。
限制:资料未提供具体安装命令、版本要求、依赖清单、性能数据或收费信息;示例以 FastAPI、SQLAlchemy、pytest、aiosqlite 为主,其他框架的适配方式暂未提供。