重磅推荐
【推荐语】
(1)作者是Flask官方开发团队成员,为Flask和其他多个Python项目贡献源代码,是知乎专栏“Hello, Flask!”的作者

(2)本书获得Flask开发团队核心维护者高度评价

(3)内容全面,从基础知识到进阶实战,再到源码分析,提供完善的Flask学习路径;

(4)实战性强,5个综合性案例将不同难度层级的知识点及具体原理串联起来,让你在开发技巧、原理实现和编程思想上都获得相应提升;

(5)技术新颖,Flask框架本身,以及其他相关Python框架,全部使用的是新发布的技术版本。
【作者】
李辉(Grey Li) Flask官方开发团队(Pallets Team)成员,知乎专栏“Hello, Flask!”作者,HelloFlask.com网站创建者。对Flask有非常深入的研究,熟悉它的源代码,有丰富的项目经验。 他热爱分享和创造,曾为Flask等多个开源项目贡献过代码,你可以在GitHub(github.com/greyli)上看到他的开源活动。在他的个人网站(greyli.com)上,你可以了解到关于他的更多信息。
【内容】
本书由Flask官方团队的开发成员撰写,得到了Flask项目核心维护者的高度认可。
内容上,本书从基础知识到进阶实战,再到Flask原理和工作机制解析,涵盖完整的Flask Web开发学习路径,非常全面。
实战上,本书从开发环境的搭建、项目的建立与组织到程序的编写,再到自动化测试、性能优化,*后到生产环境的搭建和部署上线,详细讲解完整的Flask Web程序开发流程,用5个综合性案例将不同难度层级的知识点及具体原理串联起来,让你在开发技巧、原理实现和编程思想上都获得相应的提升。
技术上,不仅Flask使用的是新发布的稳定版,而且连相关的Python工具包使用的也是全新的版本,同时对未来可能有变化的地方进行了说明,以此确保本书内容在一定时间内不会过时。
本书共16章,分为三部分。
第壹部分 基础篇(第1~6章)
通过大量的程序实例详细介绍了Flask的所有基础知识,同时在每章的后面又提供了一些进阶技巧,供进阶读者学习。
第二部分 实战篇(第7~11章)
通过5个真实的项目案例来串接和阐释不同的知识点,难度逐渐递增。这5个案例分别为:留言板SayHello、个人博客Bluelog、图片社交网站Albumy、待办事项程序Todoism和聊天室CatChat。
第三部分 进阶篇(第12~16章)
首先介绍了Flask程序的部署流程:测试、性能优化和部署上线;然后通过一个真实的实例讲解了Flask扩展的开发,*后以源代码为切入点深入剖析了Flask的实现原理与主要工作机制。
【目录】
前言
部分 基础篇
第1章 初识Flask2
1.1 搭建开发环境3
1.1.1 Pipenv工作流3
1.1.2 安装Flask7
1.1.3 集成开发环境8
1.2 Hello, Flask!11
1.2.1 创建程序实例11
1.2.2 注册路由12
1.3 启动开发服务器14
1.3.1 Run,Flask,Run!14
1.3.2 更多的启动选项18
1.3.3 设置运行环境18
1.4 Python Shell20
1.5 Flask扩展21
1.6 项目配置22
1.7 URL与端点23
1.8 Flask命令23
1.9 模板与静态文件24
1.10 Flask与MVC架构25
1.11 本章小结26
第2章 Flask与HTTP27
2.1 请求响应循环27
2.2 HTTP请求29
2.2.1 请求报文29
2.2.2 Request对象31
2.2.3 在Flask中处理请求34
2.2.4 请求钩子37
2.3 HTTP响应38
2.3.1 响应报文39
2.3.1 在Flask中生成响应40
2.3.2 响应格式43
2.3.3 来一块Cookie46
2.3.4 session:安全的Cookie49
2.4 Flask上下文54
2.4.1 上下文全局变量54
2.4.2 激活上下文55
2.4.3 上下文钩子56
2.5 HTTP进阶实践57
2.5.1 重定向回上一个页面57
2.5.2 使用AJAX技术发送异步请求60
2.5.3 HTTP服务器端推送64
2.5.4 Web安全防范65
2.6 本章小结74
第3章 模板75
3.1 模板基本用法75
3.1.1 创建模板76
3.1.2 模板语法77
3.1.3 渲染模板78
3.2 模板辅助工具80
3.2.1 上下文80
3.2.2 全局对象82
3.2.3 过滤器83
3.2.4 测试器85
3.2.5 模板环境对象87
3.3 模板结构组织88
3.3.1 局部模板88
3.3.2 宏88
3.3.3 模板继承90
3.4 模板进阶实践93
3.4.1 空白控制93
3.4.2 加载静态文件94
3.4.3 消息闪现98
3.4.4 自定义错误页面100
3.4.5 JavaScript和CSS中的Jinja2101
3.5 本章小结103
第4章 表单104
4.1 HTML表单104
4.2 使用Flask-WTF处理表单106
4.2.1 定义WTForms表单类106
4.2.2 输出HTML代码109
4.2.3 在模板中渲染表单110
4.3 处理表单数据112
4.3.1 提交表单112
4.3.2 验证表单数据113
4.3.3 在模板中渲染错误消息117
4.4 表单进阶实践118
4.4.1 设置错误消息语言118
4.4.2 使用宏渲染表单120
4.4.3 自定义验证器121
4.4.4 文件上传122
4.4.5 使用Flask-CKEditor集成富文本编辑器129
4.4.6 单个表单多个提交按钮132
4.4.7 单个页面多个表单133
4.5 本章小结137
第5章 数据库138
5.1 数据库的分类139
5.1.1 SQL139
5.1.2 NoSQL139
5.1.3 如何选择?140
5.2 ORM魔法140
5.3 使用Flask-SQLAlchemy管理数据库142
5.3.1 连接数据库服务器142
5.3.2 定义数据库模型144
5.3.3 创建数据库和表145
5.4 数据库操作146
5.4.1 CRUD147
5.4.2 在视图函数里操作数据库151
5.5 定义关系156
5.5.1 配置Python Shell上下文157
5.5.2 一对多158
5.5.3 多对一164
5.5.4 一对一165
5.5.5 多对多166
5.6 更新数据库表168
5.6.1 重新生成表168
5.6.2 使用Flask-Migrate迁移数据库169
5.6.3 开发时是否需要迁移?171
5.7 数据库进阶实践172
5.7.1 级联操作172
5.7.2 事件监听175
5.8 本章小结177
第6章 电子邮件178
6.1 使用Flask-Mail发送电子邮件179
6.1.1 配置Flask-Mail179
6.1.2 构建邮件数据182
6.1.3 发送邮件182
6.2 使用事务邮件服务SendGird183
6.2.1 注册SendGird183
6.2.2 SendGrid SMTP转发185
6.2.3 SendGrid Web API转发185
6.3 电子邮件进阶实践188
6.3.1 提供HTML正文188
6.3.2 使用Jinja2模板组织邮件正文189
6.3.3 异步发送邮件191
6.4 本章小结192
第二部分 实战篇
第7章 留言板194
7.1 使用包组织代码195
7.1.1 配置文件196
7.1.2 创建程序实例197
7.2 Web程序开发流程198
7.2.1 程序功能设计199
7.2.1 前端页面开发200
7.2.3 后端程序开发202
7.3 使用Bootstrap-Flask简化页面编写206
7.3.1 加载资源文件207
7.3.2 快捷渲染表单207
7.4 使用Flask-Moment本地化日期和时间209
7.4.1 本地化前的准备209
7.4.2 使用Flask-Moment集成Moment.js209
7.4.3 渲染时间日期210
7.5 使用Faker生成虚拟数据213
7.6 使用Flask-DebugToolbar调试程序215
7.7 Flask配置的两种组织形式216
7.7.1 环境变量优先217
7.7.2 实例文件夹覆盖217
7.8 本章小结218
第8章 个人博客219
8.1 大型项目结构220
8.1.1 使用蓝本模块化程序221
8.1.2 使用类组织配置227
8.1.3 使用工厂函数创建程序实例228
8.2 编写程序骨架232
8.2.1 数据库233
8.2.2 模板240
8.2.3 表单246
8.2.4 视图函数249
8.2.5 电子邮件支持249
8.3 编写博客前台251
8.3.1 分页显示文章列表251
8.3.2 显示文章正文258
8.3.3 文章固定链接259
8.3.4 显示分类文章列表262
8.3.5 显示评论列表263
8.3.6 发表评论与回复266
8.3.7 支持回复评论267
8.3.8 网站主题切换269
8.4 初始化博客271
8.4.1 安全存储密码271
8.4.2 创建管理员用户273
8.5 使用Flask-Login管理用户认证275
8.5.1 获取当前用户276
返回顶部