Skip to content

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 安装依赖。