FlaskWeb开发:基于Python的Web应用开发实战
所属网站分类: 资源下载 > python电子书
这大概是入门Flask最最经典的教材了。可是我依然看得很吃力,我的自控力啊啊~到哪里去了
讲的挺全面挺系统 有的地方需要硬肯 不过好在指明了方向 比较贴近现在流行的开发模式 这两天写了一个小博客应用 希望能从这个起点开始 早日完成我心目中的在线数据分析系统 数据采集存储分析展现一条龙 要补的知识还很多 再一次感叹R的执行效率 难道R还是只适合做原型开发算法研究嘛 应用到生产环境做数据产品还是要靠python
内容简介
本书不仅适合初级Web开发人员学习阅读,更是Python程序员用来学习高级Web开发技术的优秀参考书。
• 学习Flask应用的基本结构,编写示例应用;
• 使用必备的组件,包括模板、数据库、Web表单和电子邮件支持;
• 使用包和模块构建可伸缩的大型应用;
• 实现用户认证、角色和个人资料;
• 在博客网站中重用模板、分页显示列表以及使用富文本;
• 使用基于Flask的REST式API,在智能手机、平板电脑和其他第三方客户端上实现可用功能;
• 学习运行单元测试以及提升性能;
• 将Web应用部署到生产服务器。
目录
第一部分 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.6 Flask扩展 15
第3章 模板 19
3.1 Jinja2模板引擎 19
3.1.1 渲染模板 20
3.1.2 变量 21
3.1.3 控制结构 22
3.2 使用Flask-Bootstrap集成Twitter Bootstrap 23
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 把表单渲染成HTML 35
4.4 在视图函数中处理表单 37
4.5 重定向和用户会话 39
4.6 Flash消息 41
第5章 数据库 43
5.1 SQL数据库 43
5.2 NoSQL数据库 44
5.3 使用SQL还是NoSQL 45
5.4 Python数据库框架 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 集成Python shell 56
5.11 使用Flask-Migrate实现数据库迁移 56
5.11.1 创建迁移仓库 57
5.11.2 创建迁移脚本 57
5.11.3 更新数据库 58
第6章 电子邮件 59
使用Flask-Mail提供电子邮件支持 59
在Python shell中发送电子邮件 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.1 Flask的认证扩展 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-PageDown 124
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.1 REST简介 153
14.1.1 资源就是一切 154
14.1.2 请求方法 154
14.1.3 请求和响应主体 155
14.1.4 版本 156
14.2 使用Flask提供REST Web服务 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.2 Flask测试客户端 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.4 Heroku平台 191
17.4.1 准备程序 192
17.4.2 使用Foreman进行测试 196
17.4.3 使用Flask-SSLify启用安全HTTP 197
17.4.4 执行git push命令部署 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
FlaskWeb开发:基于Python的Web应用开发实战的更多相关文章
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉 ...
- 基于Python的Web应用开发实践总结
基于Python的Web应用开发学习总结 项目地址 本次学习采用的是Flask框架.根据教程开发个人博客系统.博客界面如图所示. 整个学习过程收获很多,以下是学习总结. 1.virtualenv ...
- 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码
在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> ...
- 基于Python的WEB接口开发与自动化测试 pdf(内含书签)
基于Python的WEB接口开发与自动化测试 目录 目 录O V目 录章 Python 学习必知 ................................................... ...
- 基于Python的Web应用开发实战——3 模板
要想开发出易于维护的程序,关键在于编写形式简洁且结构良好的代码. 当目前为止,你看到的示例都太简单,无法说明这一点,但Flask视图函数的两个完全独立的作用却被融合在了一起,这就产生了一个问题. 视图 ...
- 基于Python的Web应用开发实战——2 程序的基本结构
2.1 初始化 所有Flaks程序都必须创建一个程序实例. Web服务器使用一种名为Web服务器网关接口(Web Server Gateway Interface,WSGI)的协议,把接收自客户端的所 ...
- 基于python的web应用开发-添加关注者
社交web允许用户之间相互联系. 例如: 关注者.好友.联系人.联络人或伙伴. 记录两个用户之间的定向联系,在数据库查询中也要使用这种联系. 一.论数据库关系 一对多关系 数据库使用关系建立记录之间的 ...
- 关于狗书《Flask web开发 基于python的Web开发应用实战》中加入用户隐私功能
目前是第二次撸狗书,在用户页面这一块我个人觉得有些问题(基于交互设计).按理来说,我作为一个权限只有User的个人用户来说,肯定不喜欢让别人看到我的真实姓名,地址之类的敏感信息.所以我应该是可以设置成 ...
- 1.关于狗书《Flask Web开发 基于Python的web开发应用实战》身份验证的改进
在我学习用户身份验证的时候,我发现这里有个小弊端,在用户注册完成后想要验证邮箱的时候,点击邮箱中的网址进行验证,此时还要登陆,这及其不符合我们的习惯.一般情况下我们只需要点击网址就可以验证成功并且进入 ...
随机推荐
- percona-xtrabackup快速安装及其简单使用
percona-xtrabackup快速安装及其简单使用 cd /opt/环境:centos6.x yum -y install perl-DBIyum -y install perl-DBD-MyS ...
- [译]Ocelot - Quality of Service
原文 可以针对每个ReRoute设置对下游服务的熔断器circuit breaker.这部分是通过Polly实现的. 将下面的配置添加到一个ReRoute下面去. "QoSOptions&q ...
- Python核心编程笔记 第二章
2.1 程序输出:print语句 可以使用print语句显示变量的字符串表示,或者仅用变量名查看该变量的原始值. 2.2 程序输出和raw_input()内建函数 ...
- luogu P5303 [GXOI/GZOI2019]逼死强迫症
传送门 只有两行,考虑递推,设\(f_i\)为没有那两个\(1*1\)的,前\(i\)列的方案,可以发现一次可以放一个竖的或两个横的,也就是\(f_i=f_{i-1}+f_{i-2}\) 再设\(g_ ...
- Lambda表达式与函数式接口
Lambda表达式的类型,也被称为目标类型(targer type),Lambda表达式的目标类型必须是"函数式接口(functional interface)".函数式接口代表只 ...
- mysql5.x安装脚本
直接贴出来: #!/bin/bash #linux安装mysql服务分两种安装方法: #①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: #②使 ...
- 【译】索引进阶(十三):SQL SERVER中的索引碎片【下篇】
原文链接:传送门. 通用碎片模式 如果一个表具有多个索引,那么这些索引便具有多个索引键,因而也具有不同的顺序.通常情况下,这些索引中的一两个展示了之前描述过的升序插入模式,而其他的通常展示了随机插入模 ...
- Linux启动activemq失败
第一种情况: 在网上查找错误,通过./activemq console命令可以查看到activemq启动的错误信息,另外在data/activemq.log文件中可以查看到错误日志. java.io. ...
- JAVA学习笔记(1)—— eclipse自动补全和主题及字体配置
1.自动补全功能 (1)打开 Eclipse -> Window -> Perferences (2)选择Java -> Editor -> Content Assist -& ...
- pmi-ACP考试知识点梳理(部分)
敏捷宣言 个体和互动 高于流程和工具 工作的软件 高于详尽的文档 客户合作 高于合同谈判 响应变化 高于遵循计划 十二条敏捷原则 1 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意. ...