Skip to content

Latest commit

 

History

History
170 lines (135 loc) · 10.8 KB

README.md

File metadata and controls

170 lines (135 loc) · 10.8 KB

Python FastAPI + AI 应用学习路线

Java 背景友好 · Python 聚焦 AI 应用后端 · FastAPI → 流式接口 → RAG/Agent API → 工程化部署

当前使用方式

本仓库按“学习文档 + 项目交付”组织:

  • learning-goal.md:学习目标、默认节奏和三层路线。
  • progress.md:章节推进状态。
  • review-plan.md:间隔复习计划。
  • mistakes.md:错题本和踩坑复盘。
  • chapters/:每章理论、Demo、验收题、项目任务。
  • chapters/*/review.md:每章复习记录、费曼输出和错题回收。
  • projects/:6 个里程碑项目的真实代码工作区。
  • tools/check_learning_repo.py:检查章节结构、模板化内容和项目目录。

建议先完成 FastAPI + AI 应用主线,不要从第 01 章平均推进到第 60 章:

第一层:01-12、15、19、29、39、41、44、45、46、49、50、51
第二层:13-18、21-28、31-34、47-48、52-56
第三层:35-38、57-60

FastAPI 是本路线的核心框架。Flask 章节保留用于理解 Python Web 历史和框架对比,但不作为主攻方向。

FastAPI + AI 应用主线

模块 章节 目标
Python 基础 01-12、15、19 写出可读、可测试、类型清晰的 Python 代码
API 基础 41、44、49 设计请求/响应、错误码、OpenAPI 文档和外部 API 调用
FastAPI 进阶 45 掌握依赖注入、认证、中间件、后台任务、WebSocket、流式响应
AI API 项目 50 交付一个 AI 助手 API:聊天、流式输出、任务状态、历史记录
数据与缓存 46-48 保存对话、任务、缓存模型响应和检索元数据
工程化 51-56 环境、打包、Docker、CI/CD、安全和部署

参考官方文档:

  • FastAPI BackgroundTasks、依赖注入、StreamingResponse 等能力见 FastAPI 官方文档。
  • OpenAI Responses API 支持流式响应、结构化输出和工具调用,适合作为第 50 章 AI API 项目的模型层参考。

运行质量检查:

python tools/check_learning_repo.py

如果本机没有 python 命令,使用:

python3 tools/check_learning_repo.py
make all

内容维护标准见 docs/CONTENT-QUALITY.md。

优先级说明

标记 含义
L1 必须掌握 日常开发基础,必须熟练
L2 项目常用 中高级开发常用,重点学习
L3 面试高频 深度原理,面试必考

课程大纲

Phase 1:基础入门

# 章节 核心主题 优先级 预计时长 状态
01 环境搭建与Python初印象 Python安装、pyenv、pip、venv、第一个程序、REPL L1 必须掌握 3小时 ⬜ 未开始
02 Python基础语法 变量、数据类型、运算符、表达式、动态类型 L1 必须掌握 4小时 ⬜ 未开始
03 控制流程 if/elif/else、for/while循环、break/continue/pass L1 必须掌握 3小时 ⬜ 未开始
04 函数基础 def、参数、返回值、作用域、docstring L1 必须掌握 4小时 ⬜ 未开始
05 字符串详解 字符串方法、f-string、格式化、编码 L1 必须掌握 3小时 ⬜ 未开始
06 列表与元组 list/tuple操作、切片、列表推导式 L1 必须掌握 4小时 ⬜ 未开始
07 字典与集合 dict/set操作、推导式、常用方法 L1 必须掌握 4小时 ⬜ 未开始
08 文件与IO操作 文件读写、上下文管理器、pathlib L1 必须掌握 3小时 ⬜ 未开始
09 异常处理 try/except/finally/raise、自定义异常 L1 必须掌握 3小时 ⬜ 未开始
10 里程碑:Python SE小项目 学生成绩管理系统(CLI)综合实战 L1 必须掌握 6小时 ⬜ 未开始

Phase 2:进阶语法

# 章节 核心主题 优先级 预计时长 状态
11 函数进阶 *args/**kwargs、闭包、高阶函数、lambda L1 必须掌握 4小时 ⬜ 未开始
12 推导式与迭代器 列表/字典/集合推导式、生成器表达式、iter/next L1 必须掌握 3小时 ⬜ 未开始
13 生成器与协议 yield、生成器函数、迭代器协议、send L2 项目常用 4小时 ⬜ 未开始
14 装饰器 函数装饰器、类装饰器、functools.wraps、叠加 L2 项目常用 4小时 ⬜ 未开始
15 模块与包 import系统、init.py、all、相对导入 L1 必须掌握 3小时 ⬜ 未开始
16 正则表达式 re模块、模式、分组、标志、re.compile L2 项目常用 4小时 ⬜ 未开始
17 日期时间处理 datetime、timedelta、时区、strftime L2 项目常用 3小时 ⬜ 未开始
18 标准库精华 collections、itertools、functools、operator L2 项目常用 4小时 ⬜ 未开始
19 类型注解与类型检查 type hints、mypy、typing模块、泛型 L2 项目常用 3小时 ⬜ 未开始
20 里程碑:工具库项目 自定义工具库(含类型注解、测试、文档) L2 项目常用 6小时 ⬜ 未开始

Phase 3:面向对象

# 章节 核心主题 优先级 预计时长 状态
21 面向对象入门 类、实例、init、实例方法、self L1 必须掌握 4小时 ⬜ 未开始
22 继承与多态 继承、super()、方法重写、isinstance L1 必须掌握 4小时 ⬜ 未开始
23 魔术方法 str/repr/len/eq/__iter__等 L2 项目常用 4小时 ⬜ 未开始
24 属性与描述符 @property、setter/deleter、描述符协议 L2 项目常用 3小时 ⬜ 未开始
25 类方法与静态方法 @classmethod、@staticmethod、类变量 L2 项目常用 3小时 ⬜ 未开始
26 抽象类与接口 ABC、abstractmethod、Protocol L2 项目常用 3小时 ⬜ 未开始
27 数据类与枚举 @dataclass、Enum、NamedTuple、frozen L2 项目常用 3小时 ⬜ 未开始
28 设计模式 单例、工厂、观察者、策略、装饰器模式 L3 面试高频 5小时 ⬜ 未开始
29 测试基础(pytest) unittest、pytest、fixture、mock、参数化 L1 必须掌握 4小时 ⬜ 未开始
30 里程碑:OOP设计项目 图书馆管理系统(设计模式+测试覆盖) L2 项目常用 8小时 ⬜ 未开始

Phase 4:并发与高级特性

# 章节 核心主题 优先级 预计时长 状态
31 并发基础(threading) Thread、Lock、Semaphore、Queue、GIL L2 项目常用 4小时 ⬜ 未开始
32 多进程(multiprocessing) Process、Pool、Queue、Pipe、共享内存 L2 项目常用 4小时 ⬜ 未开始
33 异步编程基础(asyncio) async/await、事件循环、Task、gather L2 项目常用 5小时 ⬜ 未开始
34 异步进阶(aiohttp) aiohttp、异步上下文管理器、异步生成器 L2 项目常用 4小时 ⬜ 未开始
35 元编程 元类、new、类装饰器、动态创建类 L3 面试高频 4小时 ⬜ 未开始
36 函数式编程 map/filter/reduce、partial、immutable、纯函数 L2 项目常用 3小时 ⬜ 未开始
37 内存管理 gc模块、weakref、slots、内存分析 L3 面试高频 3小时 ⬜ 未开始
38 性能优化 cProfile、lru_cache、numpy加速、Cython简介 L3 面试高频 4小时 ⬜ 未开始
39 日志与调试 logging模块、pdb、调试策略、结构化日志 L1 必须掌握 3小时 ⬜ 未开始
40 里程碑:并发爬虫项目 异步网络爬虫(限速+重试+数据存储) L2 项目常用 8小时 ⬜ 未开始

Phase 5:Web开发

# 章节 核心主题 优先级 预计时长 状态
41 HTTP基础与requests HTTP协议、requests库、Session、认证 L1 必须掌握 3小时 ⬜ 未开始
42 Flask入门 路由、模板、Jinja2、request/response(了解即可,用于和 FastAPI 对比) L3 面试高频 2小时 ⬜ 未开始
43 Flask进阶 Blueprint、中间件、Flask-Login、扩展(了解即可,不作为主线) L3 面试高频 2小时 ⬜ 未开始
44 FastAPI入门 路径参数、Pydantic、依赖注入、文档 L1 必须掌握 4小时 ⬜ 未开始
45 FastAPI进阶 认证、中间件、后台任务、WebSocket、SSE流式响应、AI接口封装 L1 必须掌握 8小时 ⬜ 未开始
46 数据库基础 SQLite、psycopg2、SQL基础操作 L1 必须掌握 4小时 ⬜ 未开始
47 SQLAlchemy ORM 模型、Session、关系、迁移(Alembic) L2 项目常用 5小时 ⬜ 未开始
48 Redis与缓存 Redis基础、redis-py、缓存模式 L2 项目常用 4小时 ⬜ 未开始
49 API设计最佳实践 RESTful设计、版本控制、错误处理、限流 L3 面试高频 4小时 ⬜ 未开始
50 里程碑:AI助手API项目 FastAPI AI应用后端(聊天+流式输出+任务状态+历史记录) L1 必须掌握 14小时 ⬜ 未开始

Phase 6:工程化实践

# 章节 核心主题 优先级 预计时长 状态
51 虚拟环境与依赖管理 pip、venv、poetry、pyproject.toml L1 必须掌握 3小时 ⬜ 未开始
52 项目结构与打包 包结构、setup.py、pyproject.toml、PyPI L2 项目常用 4小时 ⬜ 未开始
53 Docker与容器化 Dockerfile、docker-compose、多阶段构建 L2 项目常用 5小时 ⬜ 未开始
54 CI/CD基础 GitHub Actions、自动化测试、部署流水线 L2 项目常用 4小时 ⬜ 未开始
55 里程碑:完整微服务项目 微服务架构(Docker Compose编排) L2 项目常用 12小时 ⬜ 未开始
56 安全编程 输入验证、SQL注入防御、密钥管理 L2 项目常用 4小时 ⬜ 未开始
57 数据分析入门 NumPy基础、Pandas数据清洗与分析 L2 项目常用 5小时 ⬜ 未开始
58 数据可视化 matplotlib、seaborn、plotly基础 L2 项目常用 4小时 ⬜ 未开始
59 系统设计与面试 Python面试题、系统设计模式、常见陷阱 L3 面试高频 5小时 ⬜ 未开始
60 总结与进阶路线 生态全景、进阶方向、学习资源推荐 L2 项目常用 3小时 ⬜ 未开始

学习统计

  • 总章节: 60章
  • 总学习时长: 约 247 小时
  • 里程碑项目: 6个(第10、20、30、40、50、55章)
  • L1必须掌握: 21章
  • L2项目常用: 27章
  • L3面试高频: 12章