用途:面向 2025 年的 Python 开发决策指南,教人思考而非记忆固定模式。使用前应先向用户确认框架偏好,根据上下文选择异步或同步,不要每次都默认同一框架。
主要能力:
- 框架选型:API/微服务选 FastAPI,全栈/CMS/后台选 Django,简单脚本或学习选 Flask,AI/ML 接口服务选 FastAPI,后台任务用 Celery 搭配任意框架。选型需自问:仅 API 还是全栈、是否需要管理后台、团队是否熟悉异步、现有基础设施如何。
- 异步与同步:I/O 密集(数据库、HTTP、文件)、高并发、实时特性、微服务通信适合 async;CPU 密集、简单脚本、遗留代码、团队不熟异步、只有阻塞库时用同步。原则是 I/O 密集用 async,CPU 密集用同步加多进程。异步库可选 httpx、asyncpg、aioredis/redis-py async、aiofiles、SQLAlchemy 2.0 async 或 Tortoise。
- 类型提示:函数参数、返回类型、类属性、公开 API 应标注;局部变量、一次性脚本、测试通常可省略。常用 Optional、Union、泛型集合、Callable。Pydantic 用于 API 请求响应模型、配置、数据校验与序列化。
- 项目结构:小项目用 main.py、utils.py、requirements.txt;中型 API 用 app 下分 models、routes、services、schemas 加 tests 与 pyproject.toml;大型应用用 src 布局。FastAPI 可按层或按功能组织。
- Django 与 FastAPI 要点:Django 5.0+ 支持异步视图、中间件、有限异步 ORM 与 ASGI;模型设计提倡胖模型瘦视图,查询用 select_related、prefetch_related 避免 N+1。FastAPI 中异步驱动与 I/O 用 async def,阻塞或同步驱动用 def,依赖注入用于数据库会话、认证、配置。
- 后台任务:BackgroundTasks 适合进程内简单任务,Celery、ARQ、RQ、Dramatiq 适合分布式、需重试或持久队列的复杂流程。
- 错误处理与测试:自定义异常类与处理器,返回统一错误格式,不暴露堆栈。测试分单元、集成、端到端,异步测试用 pytest-asyncio,配合 httpx 的 AsyncClient 与常用 fixtures。
限制:资料未提供具体安装命令、版本号、收费信息或性能数据,相关内容暂未提供。该技能为原则性指导,不提供可直接复制的完整代码。