《Python编程实战》目录

《Python编程实战》全书导航页:说明实战卷在 Python 三卷体系中的定位、读者画像与前置知识,梳理四个部分之间的依赖关系,并按部分列出 18 章 54 节的完整章节索引,另给两条阅读路径建议与延伸阅读方向,帮你把入门语法升级为可交付的生产级工程能力。

这是 Python 三卷体系里的中间卷。入门卷回答「会不会写」,高级卷回答「懂不懂原理」,而本卷回答的是最容易被跳过、也最影响交付质量的那个问题:一个真实项目从空目录到上线,中间到底要做哪些事、每一步怎么取舍。

《Python编程实战》目录

这一页是实战卷的总入口。它不只是章节清单,还交代了三卷之间的关系、本卷的读者画像、四个部分之间的依赖,以及两条可以直接照着走的阅读路径。如果你不确定从哪切入,先读「三卷之间的关系」与「读者画像」,再看「阅读路径」;如果你已经有明确目标,直接跳到「分部分章节」按编号定位。

全书结构是:18 章 × 3 节 = 54 节 + 本目录篇,共 55 篇。正文按工程推进的自然顺序分为四个部分:先搭基建,再写 Web 后端,然后处理数据与自动化,最后交付与运行。四个部分首尾相接,上一部分的产物就是下一部分的输入。

如何使用本目录

这一页有三种用法,取决于你此刻的状态:

刚开始读:按顺序看「三卷之间的关系」「读者画像与前置知识」「两条阅读路径建议」,用五分钟决定自己的入口章节。不要跳过这一步——选错入口比读得慢更浪费时间。

读到一半,想查某一节在哪:直接看「分部分章节」里对应部分的表格。每一行都有一句话说明,可以帮你确认是不是你要找的那一节,避免点进去再退出来的反复。

把它当手册用:优先用「常见问题速查」和每一节末尾的小结。遇到具体工程问题时,先在这里定位到章节,再进正文找细节。

三卷之间的关系

三卷不是三本可以随意挑选的书,而是一条有先后依赖的能力链。先用一张表把分工说清楚:

卷回答的问题典型内容读完后能做什么
《Python编程入门》会不会写语法、类型、模块、异常、迭代、标准库、基础工程能独立写出结构清晰、可测试的小程序
《Python编程实战》(本卷)会不会交付脚手架、Web 后端、数据与自动化、部署与运行能从空目录做出一个可上线、可运维的服务
《Python高级编程》懂不懂原理解释器与运行时、元编程、并发内核、性能深水区能读懂底层机制、做架构级取舍

入门卷把语言本身讲透,实战卷假定你已经会写,把重点从「语言特性」整体搬到「工程决策」:用什么工具链、怎么分层、边界画在哪里、失败时怎么兜底。本卷刻意少讲语法,多讲取舍——同样一件事往往给出两条路线,并说明在什么条件下选哪条。

换句话说,入门卷给你的是「零件」,本卷教你的是「怎么把零件装成一台能跑的机器」,而高级卷则带你拆开机器,看清里面每个齿轮为什么这样咬合。

实战卷与入门卷有明确的承接关系。入门卷的第 14 章讲过 pytest 基础、第 15 章讲过打包、第 16 章讲过 FastAPI 快速上手,本卷则把这些「会用」升级为「可维护、可交付」:测试从能跑变成分层与门禁,打包从能构建变成可复现与可分发,Web 从能响应变成有分层、有生命周期、有可观测性。

如果你想先补齐前置知识,可以对照入门卷的相关章节;例如异步与并发看 async/await 与事件循环 ,类型系统看 类型注解语法与 pyright / mypy ,测试基础看 pytest 基础与断言 。需要完整的学习路线,可以回到 《Python编程入门》目录 。

读者画像与前置知识

本卷面向的是「能写 Python,但没独立做过完整生产项目」的人。你可以对照下面几类找到最接近自己的入口。

如果你已经能独立交付生产项目,本卷对你的价值更多在「体系化」与「查漏补缺」,可以直接用「常见问题速查」定位到自己最薄弱的一环。

写过脚本但没做过工程:你能用 Python 处理文件、调 API、写小工具,但项目一旦变大就不知道怎么组织。你最大的收获会来自第一部分与第二部分——脚手架、依赖、配置、测试、分层,这些正是「脚本」与「工程」之间那道看不见的门槛。

有其他语言的生产经验:你熟悉工程化,但 Python 的生态工具链与惯用法对你仍是陌生的。建议快速扫过第一部分里你已熟悉的部分,把精力放在 Python 特有的取舍上,例如虚拟环境与锁文件的配合、FastAPI 的依赖注入、SQLAlchemy 2.x 的显式风格。

后端 / 数据 / 自动化从业者:你已有明确方向,不必通读。后端方向集中读第二、四部分,数据与自动化方向集中读第三部分,然后按需补第一部分的对应章节。每章开头都交代了前置依赖,可以据此判断能否跳读。

时间有限、只想补一块短板:本卷每一部分都能单独成篇。你可以先看「常见问题速查」找到自己最痛的那个问题对应的章节,读完再决定要不要补相邻章节。但要记住,跳过第一部分,后面会反复遇到「看不懂为什么这么设计」的时刻。

前置知识有三条底线:能熟练使用命令行与虚拟环境;理解模块、包、异常与上下文管理器;写过至少一个带类型注解和测试的小项目。若这三条有欠缺,先回入门卷补课比硬读本卷更省时间。

另外,本卷默认你能读写英文文档与报错信息。工程实战里大量问题最终要靠查官方文档、读 traceback 和翻源码来解决,这项能力比记住任何 API 都重要;书里会刻意保留真实的报错原文,就是为了让你习惯直面它。

四个部分之间的依赖关系

四个部分是一条链,不是四块拼图。下表说明每一部分依赖什么、又被谁依赖:

部分依赖被依赖能否跳过
第一部分 工程基建入门卷语法与工具基础全部后续部分不建议跳过
第二部分 Web 后端工程第一部分第三、四部分有后端经验者可挑读
第三部分 数据与自动化第一部分第四部分可按方向选读
第四部分 交付与运行第一、二、三部分无有运维经验者可挑读

一个实用的判断原则是:第一部分是绕不过去的地基。它建立的脚手架、依赖、配置、日志、测试五件事,在后面每一章都会被反复调用;跳过它,后面每章都要临时补课。其余三个部分则可以根据你的方向取舍:做 Web 就重点投入第二部分,做数据就重点投入第三部分,而第四部分的容器化、性能与可观测性,是所有方向都迟早会用到的收尾能力。

需要提醒的是,本卷正文的每一节都遵循「本节目标 → 正文小节 → 小结 → 衔接下一节」的结构,所以即使你从中间某节切入,也能通过开头的目标说明快速建立上下文。全书的章节之间用「上一节 / 下一节」串成一条线,从 1.1 一直连到 18.3,再回到本页。

本书的版本与运行口径

书中代码以 Python 3.12 为最低版本(requires-python = ">=3.12"),并在 Python 3.14.6 上实跑验证。第三方库的版本号以正文中标注的实测版本为准,例如 FastAPI 0.143.0、SQLAlchemy 2.1.4、pydantic 2.13.5、pandas 3.0.6。

凡本机没有对应服务或工具的章节(如 PostgreSQL、Redis、Docker、Playwright、PyInstaller),正文都会明确标注「未实测」并给出可跑的等价替代方案,不会把没跑过的输出当成实测结果。这一点在阅读时可以放心:凡是贴出的输出,都是真实跑出来的。

分部分章节

下面按四个部分列出全部 18 章 54 节,每一行给出编号、标题与一句话说明。编号规则是「章.节」,例如 12.1 表示第 12 章第 1 节;点击标题即可进入该节正文。

每一部分开头都有一段导读,说明它在整条工程路径中的位置;如果你只想知道某节讲什么,直接看表格第三列的说明即可。

第一部分 工程基建(第 1–4 章)

这一部分解决「项目怎么起、怎么配、怎么保证不退化」四个前置问题,读完能得到一套可提交、可协作、可复现的工程骨架。

节奏上,这一部分刻意把地基打厚。第 1 章从零搭建脚手架并接上静态检查,第 2 章解决依赖的可复现与多版本 CI,第 3 章把配置、日志、指标三件可观测性基础设施配齐,第 4 章建立分层的测试体系与覆盖率门禁。它们共同构成后面所有章节的运行底座。

编号章节说明
1.1从零搭建:uv + ruff + 静态检查用 uv 建出 src 布局项目,装 ruff 与 mypy 跑通第一次静态检查
1.2pyproject.toml 全解与类型检查分层拆解 pyproject.toml 四个区段,用 mypy 三档分层守住核心逻辑
1.3代码规范、pre-commit 与提交门禁选好 ruff 规则集与豁免,用 git hook 做「不合格就拒绝提交」的门禁
2.1依赖解析与锁文件拆解 pip freeze 为何不可复现,对比 uv.lock 与 pylock.toml 及哈希锁定
2.2私有源、镜像与离线安装实测镜像索引配置与私有源凭证,演示一次完全离线的依赖安装
2.3多版本 Python 矩阵与 CI 缓存实测多版本解析,给出 GitHub Actions 矩阵与缓存键设计
3.1分层配置与 pydantic-settings讲清配置来源优先级、校验与脱敏,并配合依赖注入落地
3.2结构化日志与链路追踪用 structlog 输出 JSON,用 contextvars 让 trace_id 贯穿全链路
3.3指标、健康检查与告警接入用 prometheus-client 埋点,设计健康检查并接入告警规则
4.1pytest 工程化:fixture 分层与插件conftest 向上合并、fixture 作用域与工厂型 fixture 防共享状态
4.2集成测试与容器化测试环境划清单元与集成边界,用 SQLite + fixture 搭等价数据层并讲隔离
4.3属性测试、性能回归与覆盖率门禁用 hypothesis 突破输入盲区,用 benchmark 与覆盖率卡住底线

第二部分 Web 后端工程(第 5–10 章)

这一部分用 FastAPI 把第一部分的基建变成一个真正分层的后端服务,读完能独立搭出一套带认证、缓存、队列与实时通信的 API 系统。

六个章节层层递进:第 5 章立起应用骨架与生命周期,第 6 章解决数据访问层,第 7 章把 HTTP 边界上的契约固化下来,第 8 章引入缓存与异步任务,第 9 章补上认证授权与安全,第 10 章处理长连接与实时推送。每一章都假设前面的层已经就位。

编号章节说明
5.1FastAPI 应用结构与依赖注入api/service/repository/schema 四层拆分,Depends 区分请求级与进程级依赖
5.2路由、中间件与请求上下文对比两种中间件写法,用 contextvars 传请求上下文并实测洋葱顺序
5.3生命周期、优雅关闭与健康探针用 lifespan 管理资源,SIGTERM 下优雅关闭并按 K8s 语义设计探针
6.1SQLAlchemy 2.x ORM 与类型化模型用 DeclarativeBase 与 Mapped[] 定义类型化模型,改用 select() 查询
6.2事务、连接池与 N+1 治理讲清事务边界与连接池参数,用事件钩子统计 SQL 并对比加载策略
6.3Alembic 迁移与数据演进从 init 到 autogenerate 生成迁移,讲清加列、回填与不可逆操作策略
7.1Pydantic V2 模型设计用 Field 与 Annotated 约束设计请求响应模型,讲清别名与序列化取舍
7.2OpenAPI 契约与客户端代码生成导出真实 openapi.json 解读约束映射,手写最小客户端跑通端到端
7.3版本演进与向后兼容分清破坏性与安全变更,用 Sunset 头渐进弃用并写契约 diff 脚本
8.1Redis 缓存层次与键设计拆解缓存分工与键设计,实测穿透击穿雪崩对策与分布式锁
8.2任务队列与重试对比 Celery 与 arq,用 tenacity 实测退避重试并手写最小可靠队列
8.3定时任务、幂等与死信处理讲 ZSET 延时调度与幂等键设计,给出死信重放流程与告警口径
9.1认证与会话:JWT / OAuth2手写 HS256 JWT 签发与校验,讲透常见坑并梳理 OAuth2 授权码与 PKCE
9.2权限模型与多租户隔离对比 ACL/RBAC/ABAC,实现 RBAC 并讲三种多租户隔离与越权测试
9.3输入校验、依赖供应链与漏洞加固用 Pydantic 与 pathlib 挡不可信输入,讲供应链威胁与加固清单
10.1WebSocket 与消息协议真跑握手与帧格式,用 FastAPI websocket 并设计带版本协商的消息信封
10.2SSE 与流式响应真跑 text/event-stream 字段与流式输出,给 SSE 与 WebSocket 选型对照
10.3心跳、重连与广播用心跳剔除假死连接、退避加抖动重连,用 ConnectionManager 广播做背压

第三部分 数据与自动化(第 11–14 章)

这一部分离开常驻服务,处理「一次性、批量、按计划跑」的工程:数据处理、采集、办公自动化与命令行工具,读完能把重复劳动交给脚本并让它长期稳定运行。

四个章节对应四类典型任务:第 11 章用 pandas 与 Polars 处理结构化数据并编排 ETL,第 12 章做网络采集并守住合规边界,第 13 章把文件与办公文档的批量操作自动化,第 14 章把能力封装成可分发、可测试的命令行工具乃至桌面程序。

编号章节说明
11.1pandas 数据处理与性能陷阱用 50 万行数据实测 Copy-on-Write、dtype 内存与向量化差距
11.2Polars 与大规模数据用同一份数据实测 LazyFrame 惰性求值、下推与流式引擎并对比耗时
11.3数据管道与 ETL 编排讲幂等的三种手段,手写带拓扑排序的 DAG 调度器并用 Parquet 落盘
12.1HTTP 客户端与页面解析对比 requests 与 httpx 取舍,用本地假站点跑通 BeautifulSoup 与 lxml
12.2动态页面与浏览器自动化跑通 JS 渲染页看清静态解析边界,给内嵌 JSON 与底层 API 替代路线
12.3稳定性、限速与合规边界用 robotparser 解析 robots,真跑令牌桶限速与断点续采并收束合规清单
13.1文件批处理与目录治理用 pathlib 与 hashlib 真跑批量重命名与去重,讲先干跑再执行的纪律
13.2Excel / Word / PDF 自动化用 openpyxl、python-docx、pypdf 真跑读写生成与文本提取,附公式坑
13.3定时任务与系统集成讲 cron 与 systemd timer 写法,用文件锁真跑防重入并做幂等
14.1Click / Typer 构建 CLI用 Click 声明命令组,再用 Typer 重写并用 CliRunner 测透 CLI 层
14.2分发 CLI:zipapp 与打包讲 console_scripts 入口点,用 zipapp 真打包真运行并踩过包根陷阱
14.3桌面 GUI 快速实现讲 Tkinter 布局与事件循环、PySide6 信号槽,用假视图把控制器测通

第四部分 交付与运行(第 15–18 章)

这一部分把前三个部分的成果真正交出去并跑起来:容器化、部署、性能、可观测性与一次完整的综合实战,读完能独立完成一个生产级服务的上线与运维。

第 15 章解决「怎么装进容器并部署到云」,第 16 章解决「怎么让它快且稳」,第 17 章解决「出问题时怎么看得见、回得去」,第 18 章用一个贯穿三节的真实项目 TaskFlow 把全书串起来——从需求拆解、迭代开发到上线复盘,走完一遍完整交付流程。

编号章节说明
15.1多阶段 Dockerfile 与镜像瘦身从 1.67GB 讲到 259MB,实测多阶段构建、层缓存与非 root 用户
15.2应用服务器进程模型与调优真跑 uvicorn 多 worker 并发实测,讲 gunicorn 与 UvicornWorker 模型
15.3云平台部署与 Serverless对比容器、PaaS、FaaS 三形态,实测环境变量注入与冷启动导入耗时
16.1剖析方法论用 cProfile 与 pyinstrument 读调用树,把先测量再优化立成纪律
16.2CPU·内存·I/O 三类瓶颈的定位与优化用向量化、tracemalloc 与异步批量分别击破三类瓶颈并给决策表
16.3压测、容量评估与限流降级自写压测器打出 QPS 与延迟分位,讲容量曲线并真跑限流与降级
17.1OpenTelemetry 追踪用 otel-api 与 sdk 真跑嵌套 span 与跨服务传播,贴出 FastAPI 埋点
17.2日志聚合与告警真跑采集到告警链路,把日志统一成 JSON 并带 trace_id 写告警规则
17.3灰度发布、回滚与故障演练实测稳定哈希分流与准入判定,讲不可变 tag 回滚与 expand-contract
18.1需求拆解与架构设计从 TaskFlow 出发拆需求、画领域模型、固化 API 契约并跑通首版迁移
18.2迭代开发、联调与压测把 TaskFlow 真写出来,pytest 跑出 11 例通过、86% 覆盖率并联调压测
18.3上线、复盘与后续演进用上线清单逐项落地,真跑迁移回滚,复盘四个坑并给演进路线

两条阅读路径建议

本书可以按顺序通读,也可以按角色跳读。下面给出两条典型路径,其余组合可以按前面的依赖表自行裁剪。

两条路径并不互斥:你也可以先按角色跳读完一条支线,再回头把剩下的部分补齐。关键在于每读一节都动手,把示例在自己的环境里跑一遍——工程能力是做出来的,不是读出来的。

路径一:按顺序通读(推荐给第一次做完整项目的人)。 从 1.1 一路读到 18.3,每章动手把示例跑一遍。这条路线的价值在于它模拟了真实项目的推进顺序:先搭地基,再写服务,然后处理数据,最后上线。你会经历一次「从空目录到上线」的完整闭环,这正是本书最重要的产出。预计投入 6–8 周,每天 1 小时。

路径二:按角色跳读(推荐给已有明确方向的从业者)。 先读第一部分全部 12 节,建立共同的工程底座,然后按方向选一条支线:后端方向读第二、四部分(第 5–10 章 + 第 15–18 章),数据与自动化方向读第三部分加第 15、16 章。跳读时请留意每章开头交代的前置依赖,以及各节末尾「衔接下一节」那句话——它往往点明本节产出的东西被谁消费。

无论选哪条路径,第 18 章的综合实战都建议放在最后完整走一遍。它把前面 17 章的知识收拢到一个真实项目 TaskFlow 上,从需求到上线复盘一路推到底,是检验「是否真的能独立交付」的最好方式。

常见问题速查

下面是实战中常遇到的「该读哪一节」的问题,直接给答案:

你的问题去哪一节
项目一变大就不知道文件该怎么放1.1、5.1
别人的环境装不上、装出来版本不一样2.1、2.2
本地能跑、CI 挂掉2.3、4.3
配置写死在代码里、多环境切不过来3.1
线上出问题只有一行行文本日志3.2、3.3、17.2
测试写了不少,但重构时不敢改4.1、4.3
接口一改客户端就崩7.3
某个接口偶尔很慢,查不出慢在哪6.2、16.1、17.1
缓存和数据库的数据对不上8.1、8.3
定时任务重复执行、跑了两遍8.3、13.3
用户能改到别人家的数据9.2
镜像好几个 G,部署很慢15.1
并发一上来服务就雪崩15.2、16.3
数据库表结构变更不敢上线6.3、17.3

如果你遇到的问题不在表里,可以先用目录里的关键词搜索定位章节,再结合每节的「本节目标」判断是否命中。

延伸阅读

本书讲的是「一条工程路径」,站内 Python 专题则是「单点深挖」。两者是互补关系:本书负责按顺序把能力串起来,专题负责就一个问题钻到底。几组高相关的组合:

需要更长的学习路线,可以回到入门卷的 《Python编程入门》目录 对照阅读。

读完本书之后

读完全书并不意味着结束。工程能力是一门要在项目里持续打磨的手艺,真正让它固化的,是你把它用在自己的代码上。给几条后续建议:

  • 找一个真实需求练手。哪怕只是一个内部小工具或一个 API 服务,把它按本书的顺序完整走一遍:脚手架、依赖、配置、测试、分层、部署。走通一次闭环,收益远大于再读一遍书。
  • 读一读你依赖的库的源码。FastAPI、SQLAlchemy、pydantic 的实现本身就是工程取舍的范本,对照你在第 5、6、7 章学到的分层与契约思路去读,会有新的收获。
  • 把「先测量再优化」变成习惯。第 16 章反复强调的纪律,是区分「凭感觉优化」与「有依据优化」的分水岭,值得带进每一个项目。
  • 保持对复杂度的警惕。能用一个服务解决的事不要拆成三个,能不加的依赖不要加;可维护性永远优先于技巧。

小结

这一页的核心信息可以浓缩成三句话:

  • 定位上,本卷是 Python 三卷体系的中间卷,把入门卷的「会写」升级为「会交付」,重点从语言特性整体搬到工程决策与取舍。
  • 结构上,全书是「四部分 18 章 54 节 + 本目录篇」,按工程推进顺序组织,第一部分是绕不过去的地基,其余部分可按方向取舍。
  • 路径上,第一次做完整项目建议顺序通读,已有方向可按角色跳读,但第 18 章的综合实战都值得最后完整走一遍。

如果你已经选好了路径,可以直接从对应的章节开始。每一节末尾都会指向下一节,跟着走不会迷路。

祝你交付顺利。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「python」更多文章

  1. 《Python高级编程》目录
  2. 《Python高级编程》11.3 PEP 流程与版本迁移策略
  3. 《Python高级编程》11.2 嵌入式与自由线程运行时