Starlette 小课
课程从一次 HTTP 请求出发,逐步完成一个轻量级文章管理应用。每篇围绕一个实际问题展开;具体 API 放在专题内部讲解。
pNNcNN 表示模块与专题:p01c02 是第 1 模块的第 2 个专题。文章和 _code_starlette 中的示例使用相同前缀。建议按目录顺序学习,每篇至少运行一次对应案例。
模块 1:Web 基础与 HTTP
| 专题 | 内部知识点 | 案例 |
|---|---|---|
| 从 ASGI 到 Starlette 应用 | 请求流程、ASGI、应用对象、路由、启动 | 多页面课程介绍站 |
| 读取请求数据 | 路径与查询参数、请求头、Cookie、JSON、表单 | 文章查询与反馈 |
| 设计响应 | 响应类型、状态码、响应头、重定向、文件与流 | 文章内容输出 |
| 组织路由 | 请求方法、路径参数、命名路由、Mount、匹配顺序 | 文章路由 |
模块 2:组织应用
| 专题 | 内部知识点 | 案例 |
|---|---|---|
| 用类视图组织接口 | HTTPEndpoint、方法分发、函数视图的选择 | 文章增删改查 |
| 统一错误响应 | HTTPException、处理器、业务异常 | 文章服务错误响应 |
| 用中间件处理公共逻辑 | 执行顺序、日志、耗时、CORS、GZip | 文章服务中间件 |
| 构建文章页面 | 模板、上下文、页面路由、静态资源 | 文章列表与详情页 |
模块 3:应用运行与实时交互
| 专题 | 内部知识点 | 案例 |
|---|---|---|
| 管理应用生命周期 | Lifespan、应用状态、资源清理 | 启动时准备数据 |
| 在响应后执行轻量任务 | BackgroundTask、BackgroundTasks、执行时机 | 创建文章后的日志与通知 |
| 使用 WebSocket 实时通信 | 收发、断开、回显、广播 | WebSocket 消息页面 |
模块 4:验证与实践
| 专题 | 内部知识点 | 案例 |
|---|---|---|
| 测试应用行为 | TestClient、HTTP、Lifespan、WebSocket | 小型应用测试 |
| 构建文章管理应用 | 页面、API、错误、中间件、后台任务、实时连接 | 完整文章管理项目 |
运行约定
推荐使用 Python 3.14,项目最低兼容版本为 Python 3.14,Starlette 版本为 1.6.0。在仓库根目录执行 python -m pip install -e ./_code_starlette 安装课程依赖。进入相应示例目录后,按专题写出的 uvicorn 模块名:app --reload 命令启动;需要发送 POST、PUT、DELETE 请求时,运行各专题给出的演示脚本。测试专题和综合项目在各自目录中使用 python -m pytest。
下载课程代码
下载 Starlette 课程代码(ZIP)。解压后进入解压目录,执行 python -m pip install -e ./_code_starlette 安装依赖。