内容简介
内容简介
这是一本为各水平层次的Python Web开发者提供完整Flask Web开发知识体系的鸿篇巨著,由 Flask 官方团队成员撰写,获得 Flask 之父Armin Ronacher的高度认可和推荐。
本书内容系统全面,从Flask的基础知识到完整的Flask项目实战,从Flask Web API开发到Flask应用的性能优化,从Flask项目的生产部署到Flask的源码解析,本书提供了完整的Python Web工程化学习路径。
本书实战案例丰富,基础篇的大部分章节都针对相应的知识点提供了完整可运行的示例程序,实战篇则通过2个较为完整的Flask项目讲解了Flask项目的组织方式和技巧,以及Flask开发中各类功能的实现方法和技巧。
内容紧跟技术发展,书中的代码和示例程序均基于 Flask 新发布的稳定版 3.x 编写,书中涉及的其他 Python 包和前端库也全部采用当前的新版本,确保本书在未来较长一段时间内仍可保持先进性和实用性。
本书共 14 章,分为三部分:
基础篇(第 1–7 章):通过丰富的示例讲解了 Flask 的核心基础与进阶技巧,为后续学习打下坚实基础。
实战篇(第 8–10 章):通过两个完整项目案例,将 Flask 的知识点融会贯通,带领读者完成从 0 到 1 的开发过程。
进阶篇(第 11–14 章):涵盖基于 Flask 与 APIFlask 的 Web API 开发、性能优化与生产部署,并深入剖析 Flask 的源码实现与核心机制。
本书不仅提供系统的知识讲解和完整的项目源码,还提供丰富的在线资源和活跃的读者社群。只要你了解Python的基本语法,无论你是零基础Web开发爱好者,还是想从事 Python Web 开发的后端工程师、运维工程师、爬虫工程师、数据科学工程师等,抑或是想要从 Django、FastAPI 等其他 Python Web 框架转向 Flask 的 Python 工程师,都能从中获益匪浅。掌握本书,你将不再畏惧任何复杂的Web开发需求,在AI时代构筑自己坚不可摧的核心竞争力。
前言/序言
Prologue序
距离这本书的前身《Flask Web开发实战:入门、进阶与原理解析》(2018年)上市已经过去七年多。在这段时间里,Python、Flask及许多Python库都发生了很大的变化,这让撰写这个升级版变得更加困难。除了需要了解这些项目的新变化并更新书中的内容外,我还需要同步升级相应的示例程序。同时,我还参与了许多与这本书内容密切相关的开源项目的维护工作,包括帮助修复Flask扩展的问题、发布新版本,以及维护Flask、APIFlask、Bootstrap-Flask等项目。
除此之外,我在2022年初结束了自由职业的状态,开始了第一份全职工作。在很长一段时间里,我需要在工作和日常生活之外挤出时间用于写作和维护开源项目。因此,这本书的撰写进度变得越来越缓慢,甚至常常中断数天。自2020年4月开始写作以来,在无数次焦虑和振作的反复中,我终于在600个小时的艰难写作后完成了这本书。这让我不用再因为前作中某些过时的内容可能会给读者带来困扰而纠结,也不用再时时想到自己身上背负的这个巨大的“未完成”。
这两本书见证了我的成长:从一名Flask学习者,到许多Flask扩展项目的创建者和贡献者,再到加入Flask开发团队成为Flask的维护者。我很荣幸能够通过撰写这两本书和参与开源项目为Python和Flask社区的发展作出贡献。我也很高兴我的书能给读者在爱好或事业上带来助益。
在此感谢所有新老读者的支持!本书的完成离不开你们一直以来的“催更”和关注。希望这本书能够让你的某些想法变为现实,或为你带来一些新的机会。也希望你能慷慨地分享自己的代码、经验和思想,因为你正和其他人一样,用自己的方式改变着这个世界。欢迎加入这场有趣的Flask之旅。祝你好运!
李辉(Grey Li)
前 言Preface
根据近几年的Python开发者报告,Flask(图1)是目前最流行的Python Web框架之一。自2010年开源以来,Flask受到了越来越多Python开发者的喜爱。
图1 Flask的logo
Flask仅保留了Web框架的核心,其他功能都交由扩展来实现。如果没有合适的扩展,你也可以自己动手开发。Flask不会替你做决定,也不会限制你的选择。它足够轻量,你可以用5行代码编写出一个最简单的Web程序,但并不简陋,因为它能够适应各类项目的开发
需求。
因为Flask的灵活性,越来越多的公司选择将它作为Web框架。使用Flask的知名公司在国外有Microsoft、IBM、Netf?lix、Dell、Reddit、Twilio、Mailgun等,在国内有豆瓣、联想、果壳、下厨房等。2021年,NASA在Ingenuity直升机的操作系统中使用Flask开发了对地数据系统(Ground Data System,GDS)。这说明Flask能应对大型项目的挑战,适应各种需求。
你可以在StackShare上查看使用Flask的公司列表(https://stackshare.io/f?lask)。
在国内,越来越多的Python程序员开始关注和学习Flask,但是相关书籍仅有一两本,内容较为陈旧且单薄,希望本书可以填补这一空白。本书提供了学习Flask的完整路径,从基础内容、进阶实践到源码分析。同时安排了丰富的示例程序,读者可以通过亲自实践更快地掌握Flask开发的相关内容。
目标读者
在技术层面,本书适合所有Python程序员(了解Python基础语法即可)阅读,包括已经学习过其他Python Web框架(如Django)的读者和从未接触过Web框架的读者。
在难度层面,本书适合新手和有一定基础的读者阅读。新手可以在这里学习Flask的基础内容,并通过丰富且完善的实例掌握Flask开发的各个方面;有基础的读者则可以通过阅读和实践进阶内容进一步提升Flask开发能力。
综上所述,本书适合以下几类读者阅读:
了解Python基本语法,想要自己动手开发网站的编程爱好者。
熟悉Python,想从事Python Web开发的后端工程师、运维工程师、爬虫工程师、数据科学工程师等。
想要从Django、FastAPI等其他Python Web框架转向Flask的Python工程师。
本书主要特点
本书有以下3个显著特点。
1.内容全面
本书内容覆盖了Flask Web开发的完整路径:从基础知识的学习,到不同类型和不同复杂程度程序的编写,再到代码的测试优化及Flask源码分析;从基础的内容管理,到用户认证和权限管理,再到Flask与JavaScript的数据交互、Web API的编写等。
2.实践丰富
本书包含大量代码片段,并附带多个完整可运行的示例程序。本书基础篇的大部分章节提供了相应的示例程序;实战篇则通过介绍两个较为完善的Flask项目来讲解各方面的进阶知识。将各类知识融入实际的项目开发实践中,可以使你更直观地了解具体的代码实现,并将其快速应用到实际开发中。
3.内容最新
本书内容紧跟最新技术进展。书中的代码和示例程序均基于Flask最新发布的稳定版3.x编写。书中涉及的其他Python包和前端库也全部采用最新版本。这些特点可




















