书刊介绍
《Flask Web开发实战:入门、进阶与原理解析》内容简介
这是一本面向Python程序员的,全面介绍Python Web框架Flask的书。关于本书的详细介绍、相关资源等更多信息可以访问本书的官方主页http://helloflask.com/book了解。
•国内首本Flask著作,在内容上涵盖完整的Flask Web开发学习路径,在实践上包含完整的Flask Web程序开发流程。同时兼容Python2.7和Python3.6。
•内容最新,基于Flask1.0.2版本,所有的Python库、前端框架和JavaScript库均使用最新版本。
•内容全面,除了基础知识,还包含Web API、全文搜索、国际化和本地化、第三方登录、AJAX、WebSocket、源码分析、扩展开发等实用内容。
•实战性强,包含8个示例程序,5个实战项目和1个Flask扩展。实战项目包括留言板、个人博客、图片社交网站、待办事项程序和聊天室,分别对应不同的知识点,难度递增。
•5个实战项目的Git标签经过精心设置,每个标签都对应新增的某个程序功能。
•全书所有章节均经过精心设计和编排,力求满足不同水平读者的需要,并且让读者可以循序渐进的掌握Flask开发知识和技巧。
•通过丰富的图表和代码示例讲解复杂知识点,尽量做到通俗易懂。
本书共16章,分为三部分。
第一部分:基础篇(第1~6章) 通过大量的程序实例详细介绍了Flask的所有基础知识,同时在每章的后面又提供了一些进阶技巧,供进阶读者学习。
第二部分:实战篇(第7~11章) 通过5个真实的项目案例来串接和阐释不同的知识点,难度逐渐递增。这5个案例分别为:留言板SayHello、个人博客Bluelog、图片社交网站Albumy、待办事项程序Todoism和聊天室CatChat。
第三部分:进阶篇(第12~16章) 首先介绍了Flask程序的部署流程:测试、性能优化和部署上线;然后通过一个真实的实例讲解了Flask扩展的开发,最后以源代码为切入点深入剖析了Flask的实现原理与主要工作机制。
李辉(Grey Li),Flask官方开发团队(Pallets Team)成员,知乎专栏“Hello,Flask!”作者,HelloFlask.com网站创建者。对Flask有非常深入的研究,熟悉它的源代码,有丰富的项目经验。
他热爱分享和创造,曾为Flask等多个开源项目贡献过代码,你可以在GitHub(github.com/greyli)上看到他的开源活动。在他的个人网站(greyli.com)上,你可以了解到关于他的更多信息。作品目录
前言
第一部分
基础篇
第1章:初识Flask
1.1、搭建开发环境
1.2、Hello,Flask!
1.3、启动开发服务器
1.4、Python
Shell
1.5、Flask扩展
1.6、项目配置
1.7、URL与端点
1.8、Flask命令
1.9、模板与静态文件
1.10、Flask与MVC架构
1.11、本章小结
第2章:Flask与HTTP
2.1、请求响应循环
2.2、HTTP请求
2.3、HTTP响应
2.4、Flask上下文
2.5、HTTP进阶实践
2.6、本章小结
第3章:模板
3.1、模板基本用法
3.2、模板辅助工具
3.3、模板结构组织
3.4、模板进阶实践
3.5、本章小结
第4章:表单
4.1、HTML表单
4.2、使用Flask-WTF处理表单
4.3、处理表单数据
4.4、表单进阶实践
4.5、本章小结
第5章:数据库
5.1、数据库的分类
5.2、ORM魔法
5.3、使用Flask-SQLAlchemy管理数据库
5.4、数据库操作
5.5、定义关系
5.6、更新数据库表
5.7、数据库进阶实践
5.8、本章小结
第6章:电子邮件
6.1、使用Flask-Mail发送电子邮件
6.2、使用事务邮件服务SendGrid
6.3、电子邮件进阶实践
6.4、本章小结
第二部分
实战篇
第7章:留言板
7.1、使用包组织代码
7.2、Web程序开发流程
7.3、使用Bootstrap-Flask简化页面编写
7.4、使用Flask-Moment本地化日期和时间
7.5、使用Faker生成虚拟数据
7.6、使用Flask-DebugToolbar调试程序
7.7、Flask配置的两种组织形式
7.8、本章小结
第8章:个人博客
8.1、大型项目结构
8.2、编写程序骨架
8.3、编写博客前台
8.4、初始化博客
8.5、使用Flask-Login管理用户认证
8.6、使用CSRFProtect实现CSRF保护
8.7、编写博客后台
8.8、本章小结
第9章:图片社交网站
9.1、项目组织架构
9.2、编写程序骨架
9.3、高级用户认证
9.4、基于用户角色的权限管理
9.5、使用Flask-Dropzone优化文件上传
9.6、使用Flask-Avatars处理用户头像
9.7、图片展示与管理
9.8、收藏图片
9.9、用户关注
9.10、消息提醒
9.11、用户资料与账户设置
9.12、首页与探索
9.13、使用Flask-Whooshee实现全文搜索
9.14、编写网站后台
9.15、本章小结
第10章:待办事项程序
10.1、使用JavaScript和AJAX编写单页程序
10.2、国际化与本地化
10.3、设计并编写Web
API
10.4、本章小结
第11章:在线聊天室
11.1、编写程序骨架
11.2、Gravatar头像
11.3、使用Flask-SocketIO建立实时双向通信
11.4、使用Flask-OAuthlib实现第三方登录
11.5、聊天室功能增强
11.6、本章小结
第三部分
进阶篇
第12章:自动化测试
12.1、认识自动化测试
12.2、Flask测试客户端
12.3、使用unittest编写单元测试
12.4、使用Selenium进行用户界面测试
12.5、使用Coverage.py计算测试覆盖率
12.6、使用Flake8检查代码质量
12.7、本章小结
第13章:性能优化
13.1、程序性能分析
13.2、使用Flask-Caching设置缓存
13.3、使用Flask-Assets优化静态资源
13.4、本章小结
第14章:部署上线
14.1、传统部署VS云部署
14.2、基本部署流程
14.3、部署前的准备
14.4、部署到Linux服务器
14.5、部署到PythonAnywhere
14.6、部署到Heroku
14.7、下一步做什么?
14.8、本章小结
第15章:Flask扩展开发
15.1、扩展的命名
15.2、扩展项目骨架
15.3、编写扩展类
15.4、添加扩展配置
15.5、实现扩展功能
15.6、开源发布前的准备
15.7、发布到PyPI
15.8、编写良好的扩展
15.9、本章小结
第16章:Flask工作原理与机制解析
16.1、阅读Flask源码
16.2、Flask的设计理念
16.3、Flask与WSGI
16.4、Flask的工作流程与机制
16.5、本章小结
附录A
Flask资源
A.1、本书配套资源
A.2、优秀的Flask开源程序
A.3、优秀的在线资源
A.4、讨论与问题求助
A.5、为Flask社区贡献