Flask Web开发从入门到精通(第2版)

Flask Web开发从入门到精通(第2版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [印] ,
2020-06
版次: 1
ISBN: 9787302556992
装帧: 其他
开本: 16开
纸张: 胶版纸
11人买过
  • 本书详细阐述了与Flask开发相关的基本解决方案,主要包括“配置Flask”“基于Jinja2的模板机制”“Flask中的数据模型”“与视图协同工作”“WTForms”“Flask中的身份验证机制”“构建RESTful API”“Flask应用程序管理接口”“国际化和本地化”“调试、错误处理和测试”“部署和后期部署”“微服务和容器”“提示和技巧”等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。 第1章  配置Flask 1

    1.1  利用virtualenv设置开发环境 3

    1.1.1  实现方式 3

    1.1.2  工作方式 3

    1.1.3  更多内容 4

    1.1.4  另请参阅 5

    1.2  处理基本的配置问题 5

    1.2.1  准备工作 5

    1.2.2  实现方式 6

    1.2.3  工作方式 7

    1.3  配置基于类的设置 7

    1.3.1  实现方式 7

    1.3.2  工作方式 8

    1.4  组织静态文件 8

    1.4.1  实现方式 8

    1.4.2  工作方式 9

    1.4.3  更多内容 9

    1.5  特定于部署的实例文件夹 10

    1.5.1  实现方式 10

    1.5.2  工作方式 11

    1.6  视图和模型的组合 11

    1.6.1  实现方式 11

    1.6.2  工作方式 13

    1.6.3  另请参阅 14

    1.7  利用Blueprint创建模块化的Web应用程序 14

    1.7.1  准备工作 14

    1.7.2  实现方式 14

    1.7.3  工作方式 15

    1.7.4  另请参阅 16

    1.8  通过setuptools安装Flask应用程序 16

    1.8.1  实现方式 16

    1.8.2  工作方式 17

    1.8.3  另请参阅 17

    第2章  基于Jinja2的模板机制 19

    2.1  引导推荐的布局 20

    2.1.1  准备工作 20

    2.1.2  实现方式 20

    2.1.3  工作方式 21

    2.2  实现块组合和布局继承 22

    2.2.1  准备工作 22

    2.2.2  实现方式 22

    2.2.3  工作方式 26

    2.3  创建自定义上下文处理器 28

    2.4  创建自定义Jinja2过滤器 29

    2.4.1  实现方式 29

    2.4.2  工作方式 30

    2.4.3  另请参阅 31

    2.5  为表单创建自定义宏 31

    2.5.1  准备工作 31

    2.5.2  实现方式 31

    2.6  高级日期和时间格式 32

    2.6.1  准备工作 32

    2.6.2  实现方式 33

    2.6.3  另请参阅 34

    第3章  Flask中的数据模型 35

    3.1  创建SQLAlchemy DB实例 35

    3.1.1  准备工作 36

    3.1.2  实现方式 36

    3.1.3  更多内容 37

    3.1.4  另请参阅 38

    3.2  创建基本的产品模型 38

    3.2.1  实现方式 38

    3.2.2  工作方式 41

    3.2.3  另请参阅 41

    3.3  创建关系分类模型 41

    3.3.1  实现方式 41

    3.3.2  另请参阅 44

    3.4  利用Alembic和Flask-Migrate迁移数据库 44

    3.4.1  准备工作 45

    3.4.2  实现方式 45

    3.4.3  工作方式 46

    3.4.4  另请参阅 47

    3.5  基于Redis的索引模型数据 47

    3.5.1  准备工作 48

    3.5.2  实现方式 48

    3.5.3  工作方式 49

    3.6  基于MongoDB的NoSQL方式 49

    3.6.1  准备工作 49

    3.6.2  实现方式 50

    3.6.3  另请参阅 52

    第4章  与视图协同工作 53

    4.1  编写基于函数的视图和URL路由 53

    4.1.1  准备工作 53

    4.1.2  实现方式 54

    4.1.3  工作方式 55

    4.1.4  更多内容 55

    4.2  编写基于类的视图 56

    4.2.1  准备工作 56

    4.2.2  实现方式 56

    4.2.3  工作方式 57

    4.2.4  更多内容 57

    4.2.5  另请参阅 58

    4.3  实现URL路由机制和基于产品的分页机制 58

    4.3.1  准备工作 58

    4.3.2  实现方式 58

    4.3.3  另请参阅 60

    4.4  渲染至模板 60

    4.4.1  准备工作 60

    4.4.2  实现方式 60

    4.4.3  工作方式 64

    4.4.4  另请参阅 65

    4.5  处理XHR请求 65

    4.5.1  准备工作 65

    4.5.2  实现方式 65

    4.5.3  工作方式 67

    4.6  使用装饰器处理请求 67

    4.6.1  准备工作 67

    4.6.2  实现方式 67

    4.6.3  另请参阅 68

    4.7  创建自定义的404和500处理程序 68

    4.7.1  准备工作 69

    4.7.2  实现方式 69

    4.7.3  工作方式 69

    4.7.4  更多内容 70

    4.8  闪动消息以获得更好的用户反馈 70

    4.8.1  准备工作 70

    4.8.2  实现方式 70

    4.8.3  工作方式 73

    4.9  实现基于SQL的搜索机制 73

    4.9.1  准备工作 74

    4.9.2  实现方式 74

    4.9.3  工作方式 75

    第5章  WTForms 77

    5.1  将SQLAlchemy模型数据表示为表单 77

    5.1.1  准备工作 78

    5.1.2  实现方式 78

    5.1.3  工作方式 80

    5.1.4  另请参阅 80

    5.2  验证服务器端上的字段 80

    5.2.1  实现方式 81

    5.2.2  工作方式 82

    5.2.3  更多内容 83

    5.2.4  另请参阅 83

    5.3  创建公共表单集合 83

    5.3.1  实现方式 84

    5.3.2  工作方式 85

    5.4  创建自定义字段和验证 86

    5.4.1  实现方式 86

    5.4.2  工作方式 87

    5.4.3  更多内容 87

    5.5  创建自定义微件 88

    5.5.1  实现方式 88

    5.5.2  工作方式 89

    5.5.3  另请参阅 89

    5.6  通过表单上传文件 90

    5.6.1  实现方式 90

    5.6.2  工作方式 92

    5.7  保护应用程序免受跨站点请求伪造(CSRF) 93

    5.7.1  实现方式 93

    5.7.2  工作方式 95

    第6章  Flask中的身份验证机制 97

    6.1  创建简单的基于会话的身份验证 97

    6.1.1  准备工作 98

    6.1.2  实现方式 98

    6.1.3  工作方式 103

    6.1.4  另请参阅 104

    6.2  基于Flask-Login扩展的身份验证 104

    6.2.1  准备工作 105

    6.2.2  实现方式 105

    6.2.3  工作方式 108

    6.2.4  更多内容 108

    6.2.5  另请参阅 108

    6.3  使用Facebook进行身份验证 108

    6.3.1  准备工作 108

    6.3.2  实现方式 110

    6.3.3  工作方式 112

    6.4  使用Google进行身份验证 112

    6.4.1  准备工作 113

    6.4.2  实现方式 114

    6.4.3  工作方式 115

    6.5  使用Twitter进行身份验证 115

    6.5.1  准备工作 116

    6.5.2  实现方式 116

    6.5.3  工作方式 118

    6.6  基于LDAP的身份验证机制 118

    6.6.1  准备工作 118

    6.6.2  实现方式 119

    6.6.3  工作方式 122

    6.6.4  另请参阅 123

    第7章  构建RESTful API 125

    7.1  创建基于类的REST接口 126

    7.1.1  准备工作 126

    7.1.2  实现方式 126

    7.1.3  工作方式 127

    7.2  创建基于扩展的REST接口 127

    7.2.1  准备工作 128

    7.2.2  实现方式 128

    7.2.3  工作方式 129

    7.2.4  另请参阅 129

    7.3  创建完整的RESTful API 130

    7.3.1  准备工作 130

    7.3.2  实现方式 130

    7.3.3  工作方式 132

    第8章  Flask应用程序管理接口 135

    8.1  创建简单的CRUD接口 135

    8.1.1  准备工作 136

    8.1.2  实现方式 136

    8.1.3  工作方式 139

    8.2  使用Flask-Admin扩展 141

    8.2.1  准备工作 141

    8.2.2  实现方式 141

    8.2.3  工作方式 142

    8.2.4  更多内容 142

    8.3  利用Flask-Admin注册模型 143

    8.3.1  准备工作 143

    8.3.2  实现方式 143

    8.3.3  工作方式 145

    8.4  创建自定义表单和操作 146

    8.4.1  准备工作 146

    8.4.2  实现方式 146

    8.4.3  工作方式 148

    8.5  使用WYSIWYG(所见即所得)编辑器 148

    8.5.1  准备工作 149

    8.5.2  实现方式 149

    8.5.3  工作方式 150

    8.5.4  另请参阅 151

    8.6  创建用户角色 151

    8.6.1  准备工作 151

    8.6.2  实现方式 152

    8.6.3  工作方式 154

    第9章  国际化和本地化 155

    9.1  添加一种新语言 155

    9.1.1  准备工作 155

    9.1.2  实现方式 156

    9.1.3  工作方式 158

    9.1.4  更多内容 159

    9.1.5  另请参阅 159

    9.2  实现延迟处理和gettext/ngettext函数 159

    9.2.1  准备工作 160

    9.2.2  实现方式 160

    9.3  实现全球语言切换操作 161

    9.3.1  准备工作 161

    9.3.2  实现方式 162

    9.3.3  工作方式 163

    9.3.4  另请参阅 163

    第10章  调试、错误处理和测试 165

    10.1  设置基本的文件日志系统 166

    10.1.1  准备工作 166

    10.1.2  实现方式 166

    10.1.3  工作方式 167

    10.1.4  更多内容 168

    10.1.5  另请参阅 168

    10.2  在出现错误时发送电子邮件 168

    10.2.1  准备工作 169

    10.2.2  工作方式 169

    10.2.3  工作方式 170

    10.2.4  更多内容 170

    10.3  使用Sentry监视异常 170

    10.3.1  准备工作 170

    10.3.2  实现方式 170

    10.3.3  工作方式 172

    10.4  基于pdb的调试机制 172

    10.4.1  准备工作 172

    10.4.2  实现方式 173

    10.4.3  工作方式 173

    10.4.4  另请参阅 173

    10.5  创建简单的测试 174

    10.5.1  准备工作 174

    10.5.2  实现方式 174

    10.5.3  工作方式 175

    10.5.4  另请参阅 175

    10.6  针对视图和逻辑编写多项测试 176

    10.6.1  准备工作 176

    10.6.2  实现方式 176

    10.6.3  工作方式 179

    10.7  nose库集成 179

    10.7.1  准备工作 180

    10.7.2  实现方式 180

    10.7.3  另请参阅 180

    10.8  使用Mocking避免访问API 181

    10.8.1  准备工作 181

    10.8.2  实现方式 182

    10.8.3  工作方式 184

    10.8.4  另请参阅 184

    10.9  确定测试覆盖率 184

    10.9.1  准备工作 184

    10.9.2  实现方式 185

    10.9.3  工作方式 186

    10.9.4  另请参阅 187

    10.10  使用性能分析查找瓶颈 187

    10.10.1  准备工作 187

    10.10.2  实现方式 187

    10.10.3  工作方式 187

    第11章  部署和后期部署 189

    11.1  基于Apache的部署机制 189

    11.1.1  准备工作 190

    11.1.2  实现方式 191

    11.1.3  工作方式 192

    11.1.4  更多内容 192

    11.1.5  另请参阅 193

    11.2  基于uWSGI和Nginx的部署机制 193

    11.2.1  准备工作 193

    11.2.2  实现方式 193

    11.2.3  另请参阅 195

    11.3  基于Gunicorn和Supervisor的部署机制 195

    11.3.1  准备工作 196

    11.3.2  实现方式 196

    11.3.3  工作方式 197

    11.3.4  另请参阅 197

    11.4  基于Tornado的部署 198

    11.4.1  准备工作 198

    11.4.2  实现方式 198

    11.4.3  工作方式 199

    11.5  针对文件上传使用S3存储 199

    11.5.1  准备工作 199

    11.5.2  实现方式 199

    11.5.3  工作方式 201

    11.5.4  另请参阅 201

    11.6  基于Heroku的部署 201

    11.6.1  准备工作 201

    11.6.2  实现方式 202

    11.6.3  准备工作 204

    11.6.4  更多内容 204

    11.7  基于AWS Elastic Beanstalk的部署机制 204

    11.7.1  准备工作 204

    11.7.2  实现方式 205

    11.7.3  工作方式 206

    11.8  利用New Relic管理和监控应用程序 208

    11.8.1  准备工作 208

    11.8.2  实现方式 209

    11.8.3  工作方式 210

    11.8.4  另请参阅 210

    第12中  微服务和容器 211

    12.1  基于Docker的容器化机制 211

    12.1.1  准备工作 212

    12.1.2  实现方式 213

    12.1.3  工作方式 215

    12.1.4  另请参阅 215

    12.2  基于Kubernetes的编排容器 216

    12.2.1  准备工作 216

    12.2.2  实现方式 216

    12.2.3  工作方式 218

    12.2.4  更多内容 219

    12.2.5  另请参阅 220

    12.3  AWS Lambda上基于Zappa的无服务器操作 220

    12.3.1  准备工作 220

    12.3.2  实现方式 220

    12.3.3  工作方式 223

    12.3.4  另请参阅 224

    第13章  提示和技巧 225

    13.1  实现基于Whoosh的全文本搜索 225

    13.1.1  准备工作 226

    13.1.2  实现方式 226

    13.1.3  工作方式 227

    13.1.4  另请参阅 227

    13.2  实现基于Elasticsearch的全文本搜索 227

    13.2.1  准备工作 228

    13.2.2  实现方式 228

    13.2.3  工作方式 230

    13.3  与信号协同工作 230

    13.3.1  准备工作 230

    13.3.2  实现方式 231

    13.3.3  工作方式 232

    13.3.4  另请参阅 232

    13.4  在应用程序中使用缓存 232

    13.4.1  准备工作 233

    13.4.2  实现方式 233

    13.4.3  工作方式 233

    13.4.4  更多内容 234

    13.4.5  另请参阅 234

    13.5  实现Flask应用程序的电子邮件支持 234

    13.5.1  准备工作 235

    13.5.2  实现方式 235

    13.5.3  工作方式 235

    13.5.4  更多内容 236

    13.5.5  另请参阅 237

    13.6  了解异步操作 237

    13.6.1  准备工作 237

    13.6.2  实现方式 237

    13.6.3  工作方式 238

    13.7  与Celery协同工作 238

    13.7.1  准备工作 238

    13.7.2  实现方式 238

    13.7.3  工作方式 240

    13.7.4  另请参阅 240
  • 内容简介:
    本书详细阐述了与Flask开发相关的基本解决方案,主要包括“配置Flask”“基于Jinja2的模板机制”“Flask中的数据模型”“与视图协同工作”“WTForms”“Flask中的身份验证机制”“构建RESTful API”“Flask应用程序管理接口”“国际化和本地化”“调试、错误处理和测试”“部署和后期部署”“微服务和容器”“提示和技巧”等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
  • 目录:
    第1章  配置Flask 1

    1.1  利用virtualenv设置开发环境 3

    1.1.1  实现方式 3

    1.1.2  工作方式 3

    1.1.3  更多内容 4

    1.1.4  另请参阅 5

    1.2  处理基本的配置问题 5

    1.2.1  准备工作 5

    1.2.2  实现方式 6

    1.2.3  工作方式 7

    1.3  配置基于类的设置 7

    1.3.1  实现方式 7

    1.3.2  工作方式 8

    1.4  组织静态文件 8

    1.4.1  实现方式 8

    1.4.2  工作方式 9

    1.4.3  更多内容 9

    1.5  特定于部署的实例文件夹 10

    1.5.1  实现方式 10

    1.5.2  工作方式 11

    1.6  视图和模型的组合 11

    1.6.1  实现方式 11

    1.6.2  工作方式 13

    1.6.3  另请参阅 14

    1.7  利用Blueprint创建模块化的Web应用程序 14

    1.7.1  准备工作 14

    1.7.2  实现方式 14

    1.7.3  工作方式 15

    1.7.4  另请参阅 16

    1.8  通过setuptools安装Flask应用程序 16

    1.8.1  实现方式 16

    1.8.2  工作方式 17

    1.8.3  另请参阅 17

    第2章  基于Jinja2的模板机制 19

    2.1  引导推荐的布局 20

    2.1.1  准备工作 20

    2.1.2  实现方式 20

    2.1.3  工作方式 21

    2.2  实现块组合和布局继承 22

    2.2.1  准备工作 22

    2.2.2  实现方式 22

    2.2.3  工作方式 26

    2.3  创建自定义上下文处理器 28

    2.4  创建自定义Jinja2过滤器 29

    2.4.1  实现方式 29

    2.4.2  工作方式 30

    2.4.3  另请参阅 31

    2.5  为表单创建自定义宏 31

    2.5.1  准备工作 31

    2.5.2  实现方式 31

    2.6  高级日期和时间格式 32

    2.6.1  准备工作 32

    2.6.2  实现方式 33

    2.6.3  另请参阅 34

    第3章  Flask中的数据模型 35

    3.1  创建SQLAlchemy DB实例 35

    3.1.1  准备工作 36

    3.1.2  实现方式 36

    3.1.3  更多内容 37

    3.1.4  另请参阅 38

    3.2  创建基本的产品模型 38

    3.2.1  实现方式 38

    3.2.2  工作方式 41

    3.2.3  另请参阅 41

    3.3  创建关系分类模型 41

    3.3.1  实现方式 41

    3.3.2  另请参阅 44

    3.4  利用Alembic和Flask-Migrate迁移数据库 44

    3.4.1  准备工作 45

    3.4.2  实现方式 45

    3.4.3  工作方式 46

    3.4.4  另请参阅 47

    3.5  基于Redis的索引模型数据 47

    3.5.1  准备工作 48

    3.5.2  实现方式 48

    3.5.3  工作方式 49

    3.6  基于MongoDB的NoSQL方式 49

    3.6.1  准备工作 49

    3.6.2  实现方式 50

    3.6.3  另请参阅 52

    第4章  与视图协同工作 53

    4.1  编写基于函数的视图和URL路由 53

    4.1.1  准备工作 53

    4.1.2  实现方式 54

    4.1.3  工作方式 55

    4.1.4  更多内容 55

    4.2  编写基于类的视图 56

    4.2.1  准备工作 56

    4.2.2  实现方式 56

    4.2.3  工作方式 57

    4.2.4  更多内容 57

    4.2.5  另请参阅 58

    4.3  实现URL路由机制和基于产品的分页机制 58

    4.3.1  准备工作 58

    4.3.2  实现方式 58

    4.3.3  另请参阅 60

    4.4  渲染至模板 60

    4.4.1  准备工作 60

    4.4.2  实现方式 60

    4.4.3  工作方式 64

    4.4.4  另请参阅 65

    4.5  处理XHR请求 65

    4.5.1  准备工作 65

    4.5.2  实现方式 65

    4.5.3  工作方式 67

    4.6  使用装饰器处理请求 67

    4.6.1  准备工作 67

    4.6.2  实现方式 67

    4.6.3  另请参阅 68

    4.7  创建自定义的404和500处理程序 68

    4.7.1  准备工作 69

    4.7.2  实现方式 69

    4.7.3  工作方式 69

    4.7.4  更多内容 70

    4.8  闪动消息以获得更好的用户反馈 70

    4.8.1  准备工作 70

    4.8.2  实现方式 70

    4.8.3  工作方式 73

    4.9  实现基于SQL的搜索机制 73

    4.9.1  准备工作 74

    4.9.2  实现方式 74

    4.9.3  工作方式 75

    第5章  WTForms 77

    5.1  将SQLAlchemy模型数据表示为表单 77

    5.1.1  准备工作 78

    5.1.2  实现方式 78

    5.1.3  工作方式 80

    5.1.4  另请参阅 80

    5.2  验证服务器端上的字段 80

    5.2.1  实现方式 81

    5.2.2  工作方式 82

    5.2.3  更多内容 83

    5.2.4  另请参阅 83

    5.3  创建公共表单集合 83

    5.3.1  实现方式 84

    5.3.2  工作方式 85

    5.4  创建自定义字段和验证 86

    5.4.1  实现方式 86

    5.4.2  工作方式 87

    5.4.3  更多内容 87

    5.5  创建自定义微件 88

    5.5.1  实现方式 88

    5.5.2  工作方式 89

    5.5.3  另请参阅 89

    5.6  通过表单上传文件 90

    5.6.1  实现方式 90

    5.6.2  工作方式 92

    5.7  保护应用程序免受跨站点请求伪造(CSRF) 93

    5.7.1  实现方式 93

    5.7.2  工作方式 95

    第6章  Flask中的身份验证机制 97

    6.1  创建简单的基于会话的身份验证 97

    6.1.1  准备工作 98

    6.1.2  实现方式 98

    6.1.3  工作方式 103

    6.1.4  另请参阅 104

    6.2  基于Flask-Login扩展的身份验证 104

    6.2.1  准备工作 105

    6.2.2  实现方式 105

    6.2.3  工作方式 108

    6.2.4  更多内容 108

    6.2.5  另请参阅 108

    6.3  使用Facebook进行身份验证 108

    6.3.1  准备工作 108

    6.3.2  实现方式 110

    6.3.3  工作方式 112

    6.4  使用Google进行身份验证 112

    6.4.1  准备工作 113

    6.4.2  实现方式 114

    6.4.3  工作方式 115

    6.5  使用Twitter进行身份验证 115

    6.5.1  准备工作 116

    6.5.2  实现方式 116

    6.5.3  工作方式 118

    6.6  基于LDAP的身份验证机制 118

    6.6.1  准备工作 118

    6.6.2  实现方式 119

    6.6.3  工作方式 122

    6.6.4  另请参阅 123

    第7章  构建RESTful API 125

    7.1  创建基于类的REST接口 126

    7.1.1  准备工作 126

    7.1.2  实现方式 126

    7.1.3  工作方式 127

    7.2  创建基于扩展的REST接口 127

    7.2.1  准备工作 128

    7.2.2  实现方式 128

    7.2.3  工作方式 129

    7.2.4  另请参阅 129

    7.3  创建完整的RESTful API 130

    7.3.1  准备工作 130

    7.3.2  实现方式 130

    7.3.3  工作方式 132

    第8章  Flask应用程序管理接口 135

    8.1  创建简单的CRUD接口 135

    8.1.1  准备工作 136

    8.1.2  实现方式 136

    8.1.3  工作方式 139

    8.2  使用Flask-Admin扩展 141

    8.2.1  准备工作 141

    8.2.2  实现方式 141

    8.2.3  工作方式 142

    8.2.4  更多内容 142

    8.3  利用Flask-Admin注册模型 143

    8.3.1  准备工作 143

    8.3.2  实现方式 143

    8.3.3  工作方式 145

    8.4  创建自定义表单和操作 146

    8.4.1  准备工作 146

    8.4.2  实现方式 146

    8.4.3  工作方式 148

    8.5  使用WYSIWYG(所见即所得)编辑器 148

    8.5.1  准备工作 149

    8.5.2  实现方式 149

    8.5.3  工作方式 150

    8.5.4  另请参阅 151

    8.6  创建用户角色 151

    8.6.1  准备工作 151

    8.6.2  实现方式 152

    8.6.3  工作方式 154

    第9章  国际化和本地化 155

    9.1  添加一种新语言 155

    9.1.1  准备工作 155

    9.1.2  实现方式 156

    9.1.3  工作方式 158

    9.1.4  更多内容 159

    9.1.5  另请参阅 159

    9.2  实现延迟处理和gettext/ngettext函数 159

    9.2.1  准备工作 160

    9.2.2  实现方式 160

    9.3  实现全球语言切换操作 161

    9.3.1  准备工作 161

    9.3.2  实现方式 162

    9.3.3  工作方式 163

    9.3.4  另请参阅 163

    第10章  调试、错误处理和测试 165

    10.1  设置基本的文件日志系统 166

    10.1.1  准备工作 166

    10.1.2  实现方式 166

    10.1.3  工作方式 167

    10.1.4  更多内容 168

    10.1.5  另请参阅 168

    10.2  在出现错误时发送电子邮件 168

    10.2.1  准备工作 169

    10.2.2  工作方式 169

    10.2.3  工作方式 170

    10.2.4  更多内容 170

    10.3  使用Sentry监视异常 170

    10.3.1  准备工作 170

    10.3.2  实现方式 170

    10.3.3  工作方式 172

    10.4  基于pdb的调试机制 172

    10.4.1  准备工作 172

    10.4.2  实现方式 173

    10.4.3  工作方式 173

    10.4.4  另请参阅 173

    10.5  创建简单的测试 174

    10.5.1  准备工作 174

    10.5.2  实现方式 174

    10.5.3  工作方式 175

    10.5.4  另请参阅 175

    10.6  针对视图和逻辑编写多项测试 176

    10.6.1  准备工作 176

    10.6.2  实现方式 176

    10.6.3  工作方式 179

    10.7  nose库集成 179

    10.7.1  准备工作 180

    10.7.2  实现方式 180

    10.7.3  另请参阅 180

    10.8  使用Mocking避免访问API 181

    10.8.1  准备工作 181

    10.8.2  实现方式 182

    10.8.3  工作方式 184

    10.8.4  另请参阅 184

    10.9  确定测试覆盖率 184

    10.9.1  准备工作 184

    10.9.2  实现方式 185

    10.9.3  工作方式 186

    10.9.4  另请参阅 187

    10.10  使用性能分析查找瓶颈 187

    10.10.1  准备工作 187

    10.10.2  实现方式 187

    10.10.3  工作方式 187

    第11章  部署和后期部署 189

    11.1  基于Apache的部署机制 189

    11.1.1  准备工作 190

    11.1.2  实现方式 191

    11.1.3  工作方式 192

    11.1.4  更多内容 192

    11.1.5  另请参阅 193

    11.2  基于uWSGI和Nginx的部署机制 193

    11.2.1  准备工作 193

    11.2.2  实现方式 193

    11.2.3  另请参阅 195

    11.3  基于Gunicorn和Supervisor的部署机制 195

    11.3.1  准备工作 196

    11.3.2  实现方式 196

    11.3.3  工作方式 197

    11.3.4  另请参阅 197

    11.4  基于Tornado的部署 198

    11.4.1  准备工作 198

    11.4.2  实现方式 198

    11.4.3  工作方式 199

    11.5  针对文件上传使用S3存储 199

    11.5.1  准备工作 199

    11.5.2  实现方式 199

    11.5.3  工作方式 201

    11.5.4  另请参阅 201

    11.6  基于Heroku的部署 201

    11.6.1  准备工作 201

    11.6.2  实现方式 202

    11.6.3  准备工作 204

    11.6.4  更多内容 204

    11.7  基于AWS Elastic Beanstalk的部署机制 204

    11.7.1  准备工作 204

    11.7.2  实现方式 205

    11.7.3  工作方式 206

    11.8  利用New Relic管理和监控应用程序 208

    11.8.1  准备工作 208

    11.8.2  实现方式 209

    11.8.3  工作方式 210

    11.8.4  另请参阅 210

    第12中  微服务和容器 211

    12.1  基于Docker的容器化机制 211

    12.1.1  准备工作 212

    12.1.2  实现方式 213

    12.1.3  工作方式 215

    12.1.4  另请参阅 215

    12.2  基于Kubernetes的编排容器 216

    12.2.1  准备工作 216

    12.2.2  实现方式 216

    12.2.3  工作方式 218

    12.2.4  更多内容 219

    12.2.5  另请参阅 220

    12.3  AWS Lambda上基于Zappa的无服务器操作 220

    12.3.1  准备工作 220

    12.3.2  实现方式 220

    12.3.3  工作方式 223

    12.3.4  另请参阅 224

    第13章  提示和技巧 225

    13.1  实现基于Whoosh的全文本搜索 225

    13.1.1  准备工作 226

    13.1.2  实现方式 226

    13.1.3  工作方式 227

    13.1.4  另请参阅 227

    13.2  实现基于Elasticsearch的全文本搜索 227

    13.2.1  准备工作 228

    13.2.2  实现方式 228

    13.2.3  工作方式 230

    13.3  与信号协同工作 230

    13.3.1  准备工作 230

    13.3.2  实现方式 231

    13.3.3  工作方式 232

    13.3.4  另请参阅 232

    13.4  在应用程序中使用缓存 232

    13.4.1  准备工作 233

    13.4.2  实现方式 233

    13.4.3  工作方式 233

    13.4.4  更多内容 234

    13.4.5  另请参阅 234

    13.5  实现Flask应用程序的电子邮件支持 234

    13.5.1  准备工作 235

    13.5.2  实现方式 235

    13.5.3  工作方式 235

    13.5.4  更多内容 236

    13.5.5  另请参阅 237

    13.6  了解异步操作 237

    13.6.1  准备工作 237

    13.6.2  实现方式 237

    13.6.3  工作方式 238

    13.7  与Celery协同工作 238

    13.7.1  准备工作 238

    13.7.2  实现方式 238

    13.7.3  工作方式 240

    13.7.4  另请参阅 240
查看详情
相关图书 / 更多
Flask Web开发从入门到精通(第2版)
Flash CS6动画设计立体化教程(第2版)(微课版)
兰和平
Flask Web开发从入门到精通(第2版)
Flash多媒体动画制作实用教程(实战微课版)
贾瑞
Flask Web开发从入门到精通(第2版)
Flotation Chemistry(浮选化学)(聂光华)
邓政斌 编著;聂光华
Flask Web开发从入门到精通(第2版)
Flutter小白开发——跨平台客户端应用开发学习路线
王皓
Flask Web开发从入门到精通(第2版)
Flowable流程引擎实战
金杨杰
Flask Web开发从入门到精通(第2版)
Flutter实战 第2版
杜文 编著
Flask Web开发从入门到精通(第2版)
Flash多媒体课件制作实例教程(第4版)(微课版)
方其桂;王丽娟;刘斌
Flask Web开发从入门到精通(第2版)
Flutter移动应用开发
夏辉 杨伟吉 张书峰 主编
Flask Web开发从入门到精通(第2版)
Flash CS5动画项目实训教程
杨雨新,李玉会主编
Flask Web开发从入门到精通(第2版)
Flask Web应用开发项目实战 基于Python和统信UOS
木合塔尔·沙地克
Flask Web开发从入门到精通(第2版)
Flutter跨平台开发实战
向治洪
Flask Web开发从入门到精通(第2版)
Flash动画制作(项目式全彩微课版)
古淑强 陈朝魁
您可能感兴趣 / 更多
Flask Web开发从入门到精通(第2版)
诺奖作家给孩子的阅读课·品格修养(3-9年级,莫言余华的文学启蒙,垫高阅读起点,提升作文能力)
[印]泰戈尔等
Flask Web开发从入门到精通(第2版)
Python数据分析(第3版)
[印]阿维纳什·纳夫拉尼(Avinash Navlani)
Flask Web开发从入门到精通(第2版)
PyTorch计算机视觉实战:目标检测、图像处理与深度学习
[印]V·基肖尔·阿耶德瓦拉 (印)耶什万斯·雷迪
Flask Web开发从入门到精通(第2版)
超声引导下区域麻醉实用指南
[印]阿鲁南苏·查克拉博蒂
Flask Web开发从入门到精通(第2版)
Python机器学习实战:基于Scikit-learn与PyTorch的神经网络解决方案
[印]阿什温·帕扬卡 (Ashwin Pajankar) 阿迪亚·乔希 (Aditya Joshi)著 欧拉 译
Flask Web开发从入门到精通(第2版)
全栈测试
[印]加亚特里 默罕(Gayathri Mohan)
Flask Web开发从入门到精通(第2版)
数字设计技术与解析
[印]瓦伊巴夫·塔拉特 著;慕意豪 译
Flask Web开发从入门到精通(第2版)
密码学与网络安全(第4版)
[印]阿图尔·卡哈特(Atul Kahate)著 葛秀慧 金名 译
Flask Web开发从入门到精通(第2版)
MATLAB 图形学基础
[印]兰詹·帕雷克(Ranjan Parekh) 著;章毓晋 译
Flask Web开发从入门到精通(第2版)
古老智慧的现代实践:辨喜论吠檀多(瑜伽奥义丛书)
[印]斯瓦米·维韦卡南达(辨喜)
Flask Web开发从入门到精通(第2版)
从冥想到三摩地:辨喜论王瑜伽和《瑜伽经》(瑜伽奥义丛书)
[印]斯瓦米·维韦卡南达(辨喜)
Flask Web开发从入门到精通(第2版)
被设想的未来
[印]普立梵(Prem Poddar) 【英】安德鲁·瓦特(Andrew Watt)