Flask 从入门到进阶:Python Web 开发工程化实践
畅销书《Flask Web 开发实战》2025 全新升级版
- 基于 Python 3.13(兼容 3.9+),Flask 3.x 版本编写。所有的 Python 库、CSS 库和 JavaScript 库均使用最新版本。
- 国内首本原创 Flask 著作,第 1 版纸书和电子书累计售出约 20000 本*。被许多学校和公司用作教材和培训材料。
- 所有示例程序的源码可以通过 GitHub 或文件方式下载获取,亦会提供在线 Demo。
- 在学习 Flask 的同时,介绍数据库 ORM 实践、单元测试、项目组织、部署上线等相关 Web 知识。
- 实战部分还原一个典型 Web 程序的开发流程,尽可能提供所有代码示例以便读者可以自己动手写代码。
- 以框架作为切入点,在内容上涵盖完整的 Python Web 工程化学习路径,在实践上包含完整的 Python Web 开发流程。
欢迎通过邮件订阅本书相关动态:
示例程序
面向的读者群
本书面向的读者群如下:
- 了解 Python 基本语法,想要自己动手开发网站的编程爱好者
- 熟悉 Python,想要从事 Python Web 开发的后端工程师、运维工程师和爬虫工程师
- 想要从 Django 等其他 Python Web 框架转向 Flask 的 Python 工程师
本书不包含对 Python 的基础知识介绍,所以读者需要事先对 Python 基本语法有一定的了解。另外,Web 开发不可避免的会涉及到一些 HTML、CSS 和 JavaScript 知识,如果你不熟悉这些,可以通过 MDN 提供的 Web 开发入门教程学习,简单了解即可。
章节目录
本书分为三部分,共 14 章。
基础篇
- 第 1 章 初识 Flask
搭建开发环境,编写一个最小的 Flask 程序并运行它,了解 Flask 基本知识。 - 第 2 章 Flask 与 HTTP
介绍了 Flask 与 HTTP 的交互方式以及相关的 Flask 功能特性。 - 第 3 章 模板
Jinja2 模板的使用和技巧;CSS 框架 Bootstrap 的使用和集成。 - 第 4 章 表单
Web 表单的创建和表单数据的验证。 - 第 5 章 数据库
在 Flask 程序中使用 SQLAlchemy 对数据库进行CRUD操作,各类数据库关系模式的建立和操作。 - 第 6 章 自动化测试
介绍 Flask 程序的自动化测试,包括测试编写、计算测试覆盖率、代码质量检查、类型标注检查等。 - 第 7 章 常用 Flask Web 开发技巧
介绍常用 Flask Web 开发技巧,包括文件上传、电子邮件、AJAX、富文本编辑器等。
实战篇
- 第 8 章 项目组织
介绍 Flask 项目组织方式和技巧,包括工厂函数、蓝本、配置管理等。 - 第 9 章 个人博客
通过个人博客程序 Greybook 介绍 CRUD 操作、用户认证、文章评论、管理后台等功能。 - 第 10 章 图片社交网站
通过图片社交程序 Moments 介绍用户注册和认证、用户权限管理、图片上传与处理、用户头像、复杂的数据库关系、复杂的数据库查询、全文搜索等内容。
进阶篇
- 第 11 章 Web API 开发
介绍 Web API 设计以及使用 APIFlask 进行 Web API 开发 - 第 12 章 性能分析与优化
介绍对 Flask 程序进行性能优化的主要措施,包括函数与数据库查询的性能分析、缓存的使用、静态文件优化。 - 第 13 章 部署上线
介绍部署 Flask 程序前的准备,以及传统部署(部署到 Linux 服务器)和容器部署。 - 第 14 章 Flask 工作原理与机制解析
介绍 Flask 的一些设计理念,包括底层 WSGI 的相关实现 , 并对各个主要功能点进行源码分析。
详细的目录可以在目录页面看到。
写作进度
拖延罪证已折叠 👀
已进入出版流程,预计 2025 年 11 月上市。
动态日志(镜像帖子):
- 2020-4-8 开始规划第 2 版
- 2020-6-12 决定临时搁置第二版的写作计划,先专注新书的写作
- 2021-2-16 还是决定先写第二版,计划 4/1 前完成
- 2021-9-8 重新开始写作,先写这本书,计划两个月完成,在 11/1 之前完成
- 2021-9-12 完成第 1 章《初识 Flask》
- 2021-9-16 完成第 2 章《HTTP 和 Flask》
- 2021-9-21 完成第 3 章《模板和静态文件》
- 2021-9-25 创建本书主页
- 2021-10-21 完成第 4 章《表单》
- 2021-10-28 完成第 6 章《电子邮件》
- 2021-10-30 发布新版本介绍文章《Flask Web 开发实战第 2 版写作计划》
- 2022-2-16 完成第 5 章《数据库》
- 2022-3-15 完成第 7 章《留言板》
- 2022-4-10 完成第 8 章《项目组织》
- 2022-6-15 完成第 9 章《个人博客》
- 2022-9-3 完成第 12 章《自动化测试》
- 2022-9-4 完成第 10 章《图片社交网站》
- 2022-9-24 决定以最快速度完成这本书,剩下部分尽量不加入新内容,以优化为主,计划 11/30 完成
- 2022-12-9 终稿第 1 章完成
- 2022-12-17 终稿第 2 章完成
- 2022-12-26 终稿第 3 章完成
- 2023-1-3 终稿第 4 章完成
- 2023-2-24 终稿第 5 章完成
- 2023-3-3 终稿第 6 章完成
- 2023-4-15 终稿第 7 章完成
- 2023-5-13 终稿第 8 章完成
- 2023-8-16 终稿第 11 章完成
- 2023-8-17 终稿第 12 章完成
- 2023-10-6 终稿第 9 章完成
- 2023-12-9 终稿第 13 章完成
- 2024-3-23 终稿第 10 章完成
- 2024-4-20 终稿第 14 章完成
- 2024-5-26 完成所有章节的最后一次更新(包括代码片段和图片),开始清理每章所有遗留问题
- 2024-9-19 提交终稿,进入出版流程
- 2024-12-15 提交一审和读者试读建议修订版本
- 2025-1-27 提交二审修订版本
- 2025-10-9 提交最终修改
本书预计 12 月底完成,2022 年初 2022 年年中 2022 年年末 2023 年年中年末 2024 年年末 2025 年年初 2025 年 9 月 2025 年 11 月出版。欢迎关注 Twitter
或微信公众号获取最新动态。
推荐语
Great resources make great developers, and it’s wonderful to see Flask supported by such high-quality education materials.
—— Armin Ronacher(Flask 作者,Sentry Platform 副总裁)
作为一名对 Python 充满热忱的软件工程师,一名乐于帮助他人、回馈社区的布道者,Grey 对技术准确性、阅读体验感的无限追求都体现在这本新作中,我相信每一名读者都能在字里行间感受到他的诚意。
—— 管俊(《DevOps 实践指南(第 2 版)》译者,戴尔中国卓越研发集团 DevOps 架构师)
这本书内容翔实,推荐给想要系统学习 Flask 的人。不要漏掉书中的小知识点哦。
—— Hsiaoming Yang(Typlog 创始人,Authlib 作者)
作者简介
李辉(Grey Li),Flask & APIFlask 维护者,Flask 开发团队(Pallets Team)成员, HelloFlask 社区和代码厨房社区创建者,微软 Python 方向最有价值专家(MVP)。现就职于戴尔中国卓越研发集团,担任首席软件工程师。
他热衷于开源软件的应用和推广,为 Flask 等开源项目贡献过大量代码。曾在 PyCon China、PyCon US、COSCUP、COSCon、CommunityOverCode 等技术大会担任演讲嘉宾。 你可以在 GitHub 上看到他的开源项目。在他的个人网站上,你可以了解到关于他的更多信息。