
《Flask Web开发实战:入门、进阶与原理解析》,带目录书签,文字可以复制粘贴;
前言
Flask是目前最流行的Python Web框架之一。自2010年开源以来,Flask受到了越来越多的Python开发者的喜欢,其受欢迎程度不输于Django。截至2018年6月,它在GitHub上已有近36 000个Star,2000多位Watcher,是目前GitHub中Star数最多的Python Web框架。
Flask的logo
附注
Flask的图标虽然看起来很像辣椒,但其实它是角状的容器(powder horn)。
Flask仅保留了Web框架的核心,其他的功能都交给扩展实现。如果没有合适的扩展,你甚至可以自己编写。Flask不会替你做决定,也不会限制你的选择。它足够轻量,你可以只用5行就编写出一个最简单的Web程序,但并不简陋,它能够适应各类项目的开发。
因为Flask的灵活性,越来越多的公司选择Flask作为Web框架,甚至开始从Django迁移到Flask。使用Flask的公司在国外有Netflix、Reddit、Twilio、Mailgun等,在国内则有豆瓣、果壳、下厨房等,这说明Flask能经受大型项目的挑战,能够适应各种需求。下图列出了部分使用Flask的公司。
附注
你可以在StackShare上查看完整的使用Flask的公司列表(https://stackshare.io/flask)。
使用Flask的公司
在国内,越来越多的Python程序员开始关注和学习Flask。对于国内的程序员来说,相关书籍仅有一两本,内容上也过于陈旧和单薄,希望本书可以填补这一空白。本书提供了学习Flask的完整路径,从基础内容到进阶实践,再到源码分析。同时也安排了丰富的示例程序,让读者可以通过亲自实践来更快地掌握Flask开发。
Flask自2010年开源以来在Google上的搜索趋势
目标读者
在技术层面,本书适合所有Python程序员(了解Python即可)阅读,包括已经学习过其他Python Web框架(比如Django)的读者和没有接触过Web框架的读者。
在难度水平层面,本书适合新手以及中级读者阅读。新手会在这里学到Flask的基础内容,并且通过丰富、完善的实例学习Flask开发的方方面面;中级读者则可以通过阅读和实践进阶内容来进一步提高Flask开发能力。
综上所述,本书主要适合以下几类读者:
·了解Python基本语法,想要自己动手做网站的编程爱好者。
·熟悉Python,想要从事Python Web开发的后端工程师、运维工程师和爬虫工程师。
·想要从Django等其他Python Web框架转向Flask的Python工程师。
目录
前言
第一部分 基础篇
第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 使用事务邮件服务SendGird
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资源