《Python编程实战》全 55 篇,是一套面向已有 Python 基础、想补齐工程能力的实战教材:从脚手架与依赖管理讲到部署运维,最后交付一个生产级服务。
本页是《Python编程实战》的全书目录:按章节顺序列出全部 55 篇,点击标题直达正文。也可以从各节末尾的「阅读导航」按顺序通读。
全书概览
| 项目 | 内容 |
|---|---|
| 书稿 | 《Python编程实战》 |
| 篇数 | 55 篇(正文 18 章 54 节 + 目录篇) |
| 领域 | Python 工程实践与生产交付 |
| 阅读方式 | 从目录篇 进入按顺序通读,或按章节表跳读 |
| 实测版本 | Python 3.14.6,基线 requires-python = ">=3.12" |
| 上级专题 | 书稿专题 |
全书目录
第一部分 工程基建
第 1 章 现代 Python 工程脚手架
| 节 | 文章 | 核心内容 |
|---|---|---|
| 1.1 | 从零搭建:uv + ruff + 静态检查 | 真实项目的第一步不是写代码,而是把脚手架搭对。本节用 uv 从零建出一个 src 布局的… |
| 1.2 | pyproject.toml 全解与类型检查分层 | pyproject.toml 是现代 Python 项目唯一的配置中心。本节逐段拆解它的… |
| 1.3 | 代码规范、pre-commit 与提交门禁 | 写在文档里的规范没人执行,变成门禁才会拦人。本节先讲 ruff 规则集怎么选、forma… |
第 2 章 依赖与可复现构建
| 节 | 文章 | 核心内容 |
|---|---|---|
| 2.1 | 依赖解析与锁文件 | 锁定文件是可复现构建的地基。本节先拆解 pip freeze 为何不可复现,再对比 uv… |
| 2.2 | 私有源、镜像与离线安装 | 内网与 CI 常常无法直连 PyPI。本节实测 [[tool.uv.index]] 镜像… |
| 2.3 | 多版本 Python 矩阵与 CI 缓存 | 一份代码要在多个 Python 版本上跑通。本节实测 uv python list 与 … |
第 3 章 配置、日志与可观测性
| 节 | 文章 | 核心内容 |
|---|---|---|
| 3.1 | 分层配置与 pydantic-settings | 硬编码配置撑不过多环境。本节用 pydantic-settings 2.15.0 讲清配… |
| 3.2 | 结构化日志与链路追踪 | 文本日志难以被机器解析。本节用 structlog 26.1.0 把日志输出成结构化 J… |
| 3.3 | 指标、健康检查与告警接入 | 日志记录离散事件,指标记录系统整体健康度。本节用 prometheus-client 0… |
第 4 章 测试体系
| 节 | 文章 | 核心内容 |
|---|---|---|
| 4.1 | pytest 工程化:fixture 分层与插件 | 把 pytest 从「能跑」推到「可维护」:conftest.py 向上合并与就近覆盖、… |
| 4.2 | 集成测试与容器化测试环境 | 单元测试之外的第二层防线:先划清单元与集成的边界,再用 SQLite + fixture… |
| 4.3 | 属性测试、性能回归与覆盖率门禁 | 给测试体系补上三块短板:用 hypothesis 的性质测试突破手写用例的输入盲区并靠反… |
第二部分 Web 后端工程
第 5 章 Web 框架与服务分层
| 节 | 文章 | 核心内容 |
|---|---|---|
| 5.1 | FastAPI 应用结构与依赖注入 | 用 FastAPI 0.143.0 搭一个分层后端:把 api / service / … |
| 5.2 | 路由、中间件与请求上下文 | 用中间件把日志、请求 ID、耗时统计等横切关注点从业务里抽出来:对比 BaseHTTPM… |
| 5.3 | 生命周期、优雅关闭与健康探针 | 用 lifespan 管理应用级资源(连接池、后台任务),在 SIGTERM 下实现优雅… |
第 6 章 数据访问层
| 节 | 文章 | 核心内容 |
|---|---|---|
| 6.1 | SQLAlchemy 2.x ORM 与类型化模型 | SQLAlchemy 2.1.4 实战:用 DeclarativeBase 与 Mapp… |
| 6.2 | 事务、连接池与 N+1 治理 | 从 session 生命周期讲起,用实测数据讲清事务边界、连接池参数(pool_size… |
| 6.3 | Alembic 迁移与数据演进 | Alembic 1.20.0 实战:从 init 到 env.py 配置、autogen… |
第 7 章 数据校验与 API 契约
| 节 | 文章 | 核心内容 |
|---|---|---|
| 7.1 | Pydantic V2 模型设计 | 上一章我们用 SQLAlchemy 打通了数据库,这一节回到 HTTP 边界:用 Pyd… |
| 7.2 | OpenAPI 契约与客户端代码生成 | 上一节设计好的 Pydantic 模型,本身就是一份机器可读的契约。本节让 FastAP… |
| 7.3 | 版本演进与向后兼容 | 接口一旦发布就是契约,改它要付代价。本节讲清哪些字段变更是破坏性的、哪些是安全的,用 d… |
第 8 章 缓存、队列与任务
| 节 | 文章 | 核心内容 |
|---|---|---|
| 8.1 | Redis 缓存层次与键设计 | 本节把缓存拆成三个可决策的问题:本地缓存与分布式缓存怎么分工,Cache-Aside 与… |
| 8.2 | 任务队列与重试 | 本节先对比 Celery 与 arq 的模型差异,讲清 broker、worker、结果… |
| 8.3 | 定时任务、幂等与死信处理 | 本节讲定时任务的三种形态与延时队列的 ZSET 调度,重点落在幂等键的设计:用 SET … |
第 9 章 认证、授权与安全
| 节 | 文章 | 核心内容 |
|---|---|---|
| 9.1 | 认证与会话:JWT / OAuth2 | 认证回答「你是谁」:本节用标准库 hmac/hashlib 手写 HS256 的 JWT… |
| 9.2 | 权限模型与多租户隔离 | 认证之后是授权:本节对比 ACL/RBAC/ABAC 三种模型,用角色到权限集合实现 R… |
| 9.3 | 输入校验、依赖供应链与漏洞加固 | 回到最前线的防御:用 Pydantic 与 pathlib 把不可信输入挡在门外并真跑路… |
第 10 章 实时通信
| 节 | 文章 | 核心内容 |
|---|---|---|
| 10.1 | WebSocket 与消息协议 | 从轮询到双向长连接:用标准库真跑一遍 WebSocket 握手与帧格式,掌握 FastA… |
| 10.2 | SSE 与流式响应 | 用一条只读 HTTP 流做服务端推送:真跑 text/event-stream 的 da… |
| 10.3 | 心跳、重连与广播 | 长连接上线后真正难的三件事:用 ping/pong 心跳及时剔除假死连接、用指数退避加抖… |
第三部分 数据与自动化
第 11 章 数据处理工程
| 节 | 文章 | 核心内容 |
|---|---|---|
| 11.1 | pandas 数据处理与性能陷阱 | 用 50 万行真实数据集实测 pandas 3.0 的性能陷阱:Copy-on-Writ… |
| 11.2 | Polars 与大规模数据 | 用同一份 50 万行真实数据实测 Polars 2.0:LazyFrame 惰性求值与查… |
| 11.3 | 数据管道与 ETL 编排 | 把抽取-转换-加载拼成一条可重跑、有依赖的数据管道:讲透幂等的三种落地手段,用标准库手写… |
第 12 章 爬虫与采集
| 节 | 文章 | 核心内容 |
|---|---|---|
| 12.1 | HTTP 客户端与页面解析 | 从 requests 2.34.2 与 httpx 0.28.1 的取舍讲起,实测连接复… |
| 12.2 | 动态页面与浏览器自动化 | 先跑通一个 JS 渲染的本地动态页,看清「静态解析抓不到」的真相,再用内嵌 JSON 与… |
| 12.3 | 稳定性、限速与合规边界 | 把采集从「能跑」做到「能长期跑」:用 urllib.robotparser 实测解析 r… |
第 13 章 自动化与办公
| 节 | 文章 | 核心内容 |
|---|---|---|
| 13.1 | 文件批处理与目录治理 | 文件批处理最怕「一跑就毁数据」:本节用 pathlib / shutil / hashl… |
| 13.2 | Excel / Word / PDF 自动化 | 把手工填表交给脚本:本节用 openpyxl 3.1.5 读写 Excel(样式、公式、… |
| 13.3 | 定时任务与系统集成 | 脚本要有人在对的时间触发:本节讲透 cron 表达式与 crontab 写法、syste… |
第 14 章 命令行工具与桌面
| 节 | 文章 | 核心内容 |
|---|---|---|
| 14.1 | Click / Typer 构建 CLI | 把脚本能力包成真正的命令行工具:用 Click 8.5.0 的装饰器、命令组与共享上下文… |
| 14.2 | 分发 CLI:zipapp 与打包 | 把 14.1 的工具真正交到用户手里:讲清 console_scripts 入口点、用标… |
| 14.3 | 桌面 GUI 快速实现 | 给命令行工具加一层窗口:讲清 Tkinter 的 Tk/Frame/布局管理器与事件循环… |
第四部分 交付与运行
第 15 章 容器化与部署
| 节 | 文章 | 核心内容 |
|---|---|---|
| 15.1 | 多阶段 Dockerfile 与镜像瘦身 | 从单阶段 Dockerfile 的 1.67GB 讲到多阶段构建的 259MB:实测 b… |
| 15.2 | 应用服务器进程模型与调优 | 真跑 uvicorn –workers 4 并用 httpx 并发实测:串行为何全落一… |
| 15.3 | 云平台部署与 Serverless | 容器服务、PaaS、FaaS 三种部署形态的取舍:实测 pydantic-setting… |
第 16 章 性能与容量
| 节 | 文章 | 核心内容 |
|---|---|---|
| 16.1 | 剖析方法论 | 回到最前线的性能工作:用标准库 cProfile + pstats 贴出真实 cumti… |
| 16.2 | CPU·内存·I/O 三类瓶颈的定位与优化 | 把瓶颈分成 CPU、内存、I/O 三类逐一击破:用 numpy 向量化与算法改进实测加速… |
| 16.3 | 压测、容量评估与限流降级 | 从「单个请求快」到「并发不雪崩」:用 concurrent.futures 与 time… |
第 17 章 可观测性与运维
| 节 | 文章 | 核心内容 |
|---|---|---|
| 17.1 | OpenTelemetry 追踪 | 日志知道发生了什么、指标知道系统健不健康,追踪回答「一次请求慢在哪一段」。本节用 ope… |
| 17.2 | 日志聚合与告警 | 单机日志文件在多实例部署下形同虚设。本节用 structlog 26.1.0 真跑「采集… |
| 17.3 | 灰度发布、回滚与故障演练 | 新版本不该一次性推给所有用户。本节讲灰度发布的三种流量切分(按比例/按用户/按头)并用纯… |
第 18 章 综合实战:一个生产级服务的完整交付
| 节 | 文章 | 核心内容 |
|---|---|---|
| 18.1 | 需求拆解与架构设计 | 全书收尾章从一个贯穿三节的真实项目 TaskFlow 出发:把模糊需求拆成用户故事与用例… |
| 18.2 | 迭代开发、联调与压测 | 把 TaskFlow 真的写出来:SQLAlchemy 2.1.4 模型、scrypt … |
| 18.3 | 上线、复盘与后续演进 | 收束全书:用一份可执行的上线检查清单把配置、密钥、依赖、迁移、健康检查与日志逐项落地,真… |