内容简介
本书不仅适合初级Web开发人员学习阅读,更是Python程序员用来学习高级Web开发技术的优秀参考书。
•学习Flask应用的基本结构,编写示例应用;
•使用必备的组件,包括模板、数据库、Web表单和电子邮件支持;
•使用包和模块构建可伸缩的大型应用;
•实现用户认证、角色和个人资料;
•在博客网站中重用模板、分页显示列表以及使用富文本;
•使用基于Flask的REST式API,在智能手机、平板电脑和其他第三方客户端上实现可用功能;
•学习运行单元测试以及提升性能;
•将Web应用部署到生产服务器。
目录
- 前言XI
- 第一部分Flask简介
- 第1章安装3
- 1.1使用虚拟环境4
- 1.2使用pip安装Python包6
- 第2章程序的基本结构7
- 2.1初始化7
- 2.2路由和视图函数7
- 2.3启动服务器9
- 2.4一个完整的程序9
- 2.5请求-响应循环11
- 2.5.1程序和请求上下文11
- 2.5.2请求调度13
- 2.5.3请求钩子13
- 2.5.4响应14
- 2.6Flask扩展15
- 第3章模板19
- 3.1Jinja2模板引擎19
- 3.1.1渲染模板20
- 3.1.2变量21
- 3.1.3控制结构22
- 3.2使用Flask-Bootstrap集成TwitterBootstrap23
- 3.3自定义错误页面26
- 3.4链接29
- 3.5静态文件29
- 3.6使用Flask-Moment本地化日期和时间30
- 第4章Web表单33
- 4.1跨站请求伪造保护33
- 4.2表单类34
- 4.3把表单渲染成HTML35
- 4.4在视图函数中处理表单37
- 4.5重定向和用户会话39
- 4.6Flash消息41
- 第5章数据库43
- 5.1SQL数据库43
- 5.2NoSQL数据库44
- 5.3使用SQL还是NoSQL45
- 5.4Python数据库框架45
- 5.5使用Flask-SQLAlchemy管理数据库46
- 5.6定义模型47
- 5.7关系49
- 5.8数据库操作50
- 5.8.1创建表50
- 5.8.2插入行51
- 5.8.3修改行52
- 5.8.4删除行52
- 5.8.5查询行52
- 5.9在视图函数中操作数据库54
- 5.10集成Pythonshell56
- 5.11使用Flask-Migrate实现数据库迁移56
- 5.11.1创建迁移仓库57
- 5.11.2创建迁移脚本57
- 5.11.3更新数据库58
- 第6章电子邮件59
- 使用Flask-Mail提供电子邮件支持59
- 在Pythonshell中发送电子邮件60
- 在程序中集成发送电子邮件功能61
- 异步发送电子邮件62
- 第7章大型程序的结构65
- 7.1项目结构65
- 7.2配置选项66
- 7.3程序包67
- 7.3.1使用程序工厂函数68
- 7.3.2在蓝本中实现程序功能69
- 7.4启动脚本71
- 7.5需求文件71
- 7.6单元测试72
- 7.7创建数据库74
- 第二部分实例:社交博客程序
- 第8章用户认证77
- 8.1Flask的认证扩展77
- 8.2密码安全性77
- 8.3创建认证蓝本80
- 8.4使用Flask-Login认证用户81
- 8.4.1准备用于登录的用户模型81
- 8.4.2保护路由83
- 8.4.3添加登录表单83
- 8.4.4登入用户84
- 8.4.5登出用户86
- 8.4.6测试登录86
- 8.5注册新用户87
- 8.5.1添加用户注册表单87
- 8.5.2注册新用户89
- 8.6确认账户90
- 8.6.1使用itsdangerous生成确认令牌90
- 8.6.2发送确认邮件92
- 8.7管理账户95
- 第9章用户角色97
- 9.1角色在数据库中的表示97
- 9.2赋予角色99
- 9.3角色验证100
- 第10章用户资料103
- 10.1资料信息103
- 10.2用户资料页面104
- 10.3资料编辑器106
- 10.3.1用户级别的资料编辑器106
- 10.3.2管理员级别的资料编辑器108
- 10.4用户头像110
- 第11章博客文章115
- 11.1提交和显示博客文章115
- 11.2在资料页中显示博客文章118
- 11.3分页显示长博客文章列表118
- 11.3.1创建虚拟博客文章数据119
- 11.3.2在页面中渲染数据120
- 11.3.3添加分页导航121
- 11.4使用Markdown和Flask-PageDown支持富文本文章124
- 11.4.1使用Flask-PageDown124
- 11.4.2在服务器上处理富文本125
- 11.5博客文章的固定链接127
- 11.6博客文章编辑器128
- 第12章关注者131
- 12.1再论数据库关系131
- 12.1.1多对多关系131
- 12.1.2自引用关系133
- 12.1.3高级多对多关系134
- 12.2在资料页中显示关注者136
- 12.3使用数据库联结查询所关注用户的文章138
- 12.4在首页显示所关注用户的文章141
- 第13章用户评论145
- 13.1评论在数据库中的表示145
- 13.2提交和显示评论146
- 13.3管理评论149
- 第14章应用编程接口153
- 14.1REST简介153
- 14.1.1资源就是一切154
- 14.1.2请求方法154
- 14.1.3请求和响应主体155
- 14.1.4版本156
- 14.2使用Flask提供RESTWeb服务156
- 14.2.1创建API蓝本157
- 14.2.2错误处理157
- 14.2.3使用Flask-HTTPAuth认证用户159
- 14.2.4基于令牌的认证161
- 14.2.5资源和JSON的序列化转换162
- 14.2.6实现资源端点165
- 14.2.7分页大型资源集合167
- 14.2.8使用HTTPie测试Web服务168
- 第三部分成功在望
- 第15章测试173
- 15.1获取代码覆盖报告173
- 15.2Flask测试客户端176
- 15.2.1测试Web程序176
- 15.2.2测试Web服务179
- 15.3使用Selenium进行端到端测试180
- 15.4值得测试吗184
- 第16章性能185
- 16.1记录影响性能的缓慢数据库查询185
- 16.2分析源码187
- 第17章部署189
- 17.1部署流程189
- 17.2把生产环境中的错误写入日志190
- 17.3云部署191
- 17.4Heroku平台191
- 17.4.1准备程序192
- 17.4.2使用Foreman进行测试196
- 17.4.3使用Flask-SSLify启用安全HTTP197
- 17.4.4执行gitpush命令部署198
- 17.4.5查看日志199
- 17.4.6部署一次升级199
- 17.5传统的托管200
- 17.5.1架设服务器200
- 17.5.2导入环境变量200
- 17.5.3配置日志201
- 第18章其他资源203
- 18.1使用集成开发环境203
- 18.2查找Flask扩展204
- 18.3参与Flask开发204
- 关于封面图205
这是我几年前自学python时读过的一本书它被认为是一本烧瓶入门书。但是,单纯从应用的角度来说,这本书研究得很透彻,用flask作为应用没有大问题。起初,我想成为自己的个人网站后来网站开了,在腾讯云上托管,我没时间打理最后,我下线了。国内用flask或者python的网站应该不多如果你想知道如何使用python来构建一个mvc架构的web,不妨读一读这本书。
就学习怎么用flask来说,看文档更好。书里讲了很多第三方模块,有的已经过期了。只能看看为什么要这么用这些模块。bootstrap、用户认证模块什么的,功能很强大,但实在太麻烦,不如直接自己弄。