Flask Web 开发实战 入门、进阶与原理解析
Python Web Development with Flask
- 国内首本原创 Flask 著作,在内容上涵盖完整的 Flask Web 开发学习路径,在实践上包含完整的 Flask Web 程序开发流程。同时兼容 Python 2.7 和 Python 3.6。
- 基于 Flask 1.0.2 版本,所有的 Python 库、前端框架和 JavaScript 库均使用最新版本。
- 除了基础知识,还包含 Web API、全文搜索、国际化和本地化、第三方登录、AJAX、WebSocket、源码分析、扩展编写等实用内容。
- 包含 8 个示例程序,5 个实战项目和 1 个 Flask 扩展。实战项目包括留言板、个人博客、图片社交网站、待办事项程序和聊天室,分别对应不同的知识点,难度递增。
- 5 个实战项目的 Git 标签经过精心设置,每个标签都对应新增的某个程序功能。
相关资源
- 常见问题列表(FAQ)
- 可改进实现列表
- Flask-Origin(Flask 0.1版本源码注解)
- IMDb Watchlist,镜像豆列(第 3 章 Watchlist 程序的现实版)
- 《Flask Web开发实战》封面设计说明
- 《Flask Web开发实战》彩蛋大公开
示例程序
-
HelloFlask
本书的Git仓库。包含1~6章、第13章中的8个示例程序源码、勘误、FAQ等文件。如果你有相关的疑问和反馈,可以在这个仓库中创建Issue。如果你发现了书中的错误,可以提交PR来添加勘误信息。
在这本书的第一部分的源码中,一共有 6 个 Flask 程序,分别保存在 helloflask/demos/ 目录下的六个子文件夹内,用来存储环境变量的 .env 和 .flaskenv 文件需要在这些子文件夹内创建,而不是放到顶层目录(helloflask/)。同时为了方便操作,这 6 个程序共用同一个虚拟环境,所以在 helloflask/ 目录下创建虚拟环境。Hello, Flask!
在线实例进行了一些修改以适应线上环境,而且部分程序关闭了某些功能。如果访问速度过慢,可以在本地克隆源码并运行程序。建议按照书中的指示从GitHub克隆源码仓库,如果速度过慢,可以点击这里下载源码合集打包文件。
目录 & 试读
本书共704页,三部分,共16章。
基础篇
- 第1章 初识Flask
搭建开发环境,编写一个最小的Flask程序并运行它,了解Flask基本知识。 - 第2章 Flask与HTTP
介绍了Flask与HTTP的交互方式以及相关的Flask功能。 - 第3章 模板
Jinja2模板的使用和技巧。 - 第4章 表单
Web表单的创建和表单数据的验证。 - 第5章 数据库
在Flask程序中使用数据库进行CRUD操作,各类数据库关系的建立。 - 第6章 电子邮件
在Flask程序中发送电子邮件的几种方式,使用Flask-Mail通过SMTP服务器发送,或是通过事务邮件服务SendGrid(SMTP和Web API两种方式)。
实战篇
- 第7章 留言板
通过一个简单的留言板程序SayHello介绍Web开发基本流程和基本的项目管理方式,对第一部分的基础知识进行简单的回顾,最后还介绍了Faker、Flask-Moment和Flask-DebugToolbar的使用。 - 第8章 个人博客
通过个人博客程序Bluelog介绍CRUD操作、用户认证(Flask-Login)、文章评论和回复、后台管理等功能,其中还包括网站主题更换,渲染导航链接等小技巧。 - 第9章 图片社交网站
通过图片社交程序Albumy介绍用户注册和认证、用户权限管理、图片上传(Flask-Dropzone)与处理(Pillow)、用户头像、复杂的数据库关系、复杂的数据库查询、全文搜索(Flask-Whooshee)等内容。 - 第10章 待办事项程序
通过待办事项程序Todoism介绍单页应用、国际化与本地化(Flask-Babel)、Web API、OAuth服务器端实现等内容。 - 第11章 在线聊天室
通过聊天室程序CatChat介绍Websocket应用(实时双向通讯,通过Flask-SocketIO实现)、OAuth客户端实现(第三方登录,通过Flask-OAuthlib实现)、Markdown支持(markdown)、代码语法高亮(pygments)等内容。
进阶篇
- 第12章 自动化测试
介绍Flask程序的自动化测试,包括单元测试和UI测试的编写、计算测试覆盖率和代码质量检查。 - 第13章 性能优化
对Flask程序进行性能优化的主要措施,包括函数与数据库查询的性能分析、缓存的使用(Flask-Caching)、静态文件优化(Flask-Assets)。 - 第14章 部署上线
介绍部署Flask程序前的准备,以及部署到Linux服务器和云平台Heroku、PythonAnywhere的完整流程。 - 第15章 Flask扩展开发
通过扩展Flask-Share来介绍编写Flask扩展的完整流程,从创建项目到上传到PyPI。 - 第16章 Flask工作原理与机制解析
介绍了Flask的一些设计理念,包括底层WSGI的相关实现,并对各个主要功能点进行源码分析。
详细的目录可以在目录页面看到。试读章节如下
推荐语
Grey Li is a really helpful contributor to Flask and the Python community. He is making it easier for more people to learn and use Flask.
—— David Lord(Flask 开发团队负责人)
这本书内容翔实,推荐给想要系统学习 Flask 的人。不要漏掉书中的小知识点哦。
—— Hsiaoming Yang(Flask 开发团队成员)
这本《Flask Web 开发实战》非常有趣,是一本能够给读者带来帮助的书,作为一个 Flask 框架的爱好者,我也很期待这本书的出版。
—— 黄健宏(《Redis 设计与实现》作者)