用途:这是一份 Python 开发决策指南,帮助开发者根据具体场景选择框架、同步或异步方案、类型注解方式以及项目结构,重点在学习思考方法而非复制定式代码。
主要能力: 一、框架选型。提供决策树:API 优先或微服务选 FastAPI,全栈 Web/CMS/后台选 Django,简单脚本或学习选 Flask,AI/ML API 服务选 FastAPI,后台任务配合 Celery。并给出 FastAPI、Django、Flask 在适用场景、异步支持、后台管理、ORM 和学习曲线上的对比,建议先向用户确认框架偏好。 二、异步与同步取舍。原则是 I/O 密集用 async,CPU 密集用同步加多进程。给出异步库参考(HTTP 客户端 httpx、PostgreSQL 用 asyncpg、Redis 用 redis.asyncio、文件 I/O 用 aiofiles、ORM 可选 SQLAlchemy 2.0 async 或 Tortoise),并提示不要混用同步与异步、不要在异步代码中用同步库。 三、类型注解策略。函数参数、返回值、类属性和公开 API 始终标注,局部变量可依赖推断;覆盖 Optional、Union、泛型集合、Callable 等模式。Pydantic 适用于 API 请求响应模型、配置、校验与序列化,具备运行时校验和自动 JSON Schema。 四、项目结构。按小脚本、中型 API、大型应用三档给出目录组织方式,FastAPI 可按分层(routes/services/models/schemas/dependencies)或按功能拆分。 五、Django 与 FastAPI 实践要点。Django 5.0+ 支持异步视图、异步中间件、有限异步 ORM 与 ASGI 部署;建议胖模型瘦视图、使用 manager、select_related/prefetch_related 避免 N+1。FastAPI 中 async def 用于异步数据库与 HTTP,def 用于阻塞或 CPU 工作;依赖注入用于数据库会话、认证、配置与共享资源。 六、其他原则。后台任务按场景在 BackgroundTasks、Celery、ARQ、RQ、Dramatiq 间选择;错误处理采用自定义异常、统一错误格式且不暴露堆栈;测试分单元、集成、E2E,异步测试用 pytest-asyncio 与 httpx.AsyncClient,并搭配数据库、客户端、认证用户等 fixture。
使用方式:以决策清单方式引导实现前先确认框架偏好、当前上下文选型、同步异步取舍、类型注解策略、项目结构、错误处理与后台任务等。
限制:资料仅为原则性指导,未提供具体安装命令、版本要求、收费信息或性能基准,实际选型需结合团队与现有基础设施判断。