用途:这是一份面向 2025 年的 Python 开发决策指南,帮助开发者根据具体场景做技术选择,而不是记忆固定代码模板。
主要能力:
- 框架选型:给出决策树,API/微服务与 AI/ML 服务倾向 FastAPI,全栈/CMS/后台倾向 Django,简单脚本或学习倾向 Flask,后台任务用 Celery 搭配任意框架;并列出异步支持、Admin、ORM、学习曲线等对比维度。
- 异步与同步取舍:I/O 密集用 async,CPU 密集用同步加多进程;避免在异步代码中使用同步库,也不要把 CPU 工作强行异步化。异步库建议包括 httpx、asyncpg、aioredis、aiofiles、SQLAlchemy 2.0 async 等。
- 类型提示:函数参数、返回值、类属性、公开 API 应标注;局部变量、一次性脚本、测试可省略。涉及 Optional、Union、泛型集合、Callable 等模式,并建议用 Pydantic 做请求响应模型、配置、校验与序列化。
- 项目结构:按小脚本、中型 API、大型应用给出目录组织方式,FastAPI 可按层或按功能组织。
- Django 与 FastAPI 原则:Django 5.0+ 支持异步视图、中间件与有限异步 ORM;模型设计提倡胖模型瘦视图,查询用 select_related、prefetch_related 避免 N+1。FastAPI 中 async def 用于异步驱动与 I/O,def 用于阻塞或 CPU 工作,依赖注入用于数据库会话、认证、配置。
- 后台任务:BackgroundTasks 适合进程内简单任务,Celery、ARQ、RQ、Dramatiq 适合分布式、需重试或持久队列的场景。
- 错误处理与测试:自定义异常、统一错误格式、不暴露堆栈;测试分单元、集成、端到端,异步测试用 pytest-asyncio,并给出常用 fixture 思路。
使用方式:资料未提供安装命令或具体调用方式,仅作为决策参考。
适用场景:Python 项目技术选型、架构设计与代码评审。
限制:内容为原则性指导,未提供具体版本兼容性、性能数据或完整示例;实际选择需结合团队与现有基础设施。