深入理解Flash-掌握用Python创建强大动态Web应用的技术

综合评级:
★★★★★

定价:
¥79.00

作者:
杰克.史都华

出版社:
电子工业

出版日期:
2016/07/01

页数:
256

ISBN:
9787121292316

书籍介绍

flask 是一种具有平缓学习曲线和庞大社区支持的微框架,利用它可以构建大规模的web应用。学习上手flask非常轻松,但要深入理解却并不容易。本书从一个简单的flask应用开始,通过解决若干实战中的问题,对一系列进阶的话题进行了探讨。书中使用mvc(模型-视图-控制器)架构对示例应用进行了转化重构,以演示如何正确地组织应用代码结构。有了可扩展性强的应用结构之后,接下来的章节使用flask扩展为应用提供了额外的功能,包括用户登录和注册、nosql查询、rest api、一套后台管理界面,以及其他特性。然后,你会学到如何使用单元测试,保障代码持续按照正确的方式工作,避免极具风险的猜测式编程。本书还会讨论可用于部署flask应用的诸多不同平台,以及你必须考虑的——每个平台的优劣利弊。你会从本书中学到:

■ 搭建python项目环境的优秀实践

■ 使用sqlalchemy,以编程式对数据库进行查询

■ 在jinja中开发页面模板

■ 在flask中搭建mvc环境

■ 探索nosql,何时应该以及何时不应该使用,以及如何使用

■ 开发你自己的flask扩展

■ 使用celery创建异步任务

■ 使用py.test编写单元测试

作者简介

Jack Stouffer 是一名有数年Web 应用开发经验的程序员。他在两年前将自己所有的项目都切换到了Flask,目前在位于密歇根州奥本山的Apollo America 工作,使用Python、Flask 和JavaScript 编写企业内部的业务工具。Jack 是开源技术的信徒与支持者,他在GitHub 上发布以他所推荐的*佳实践原则编写的Flask 范例时,该范例立即成为线上*受欢迎的Flask 代码库。Jack 还曾经担任由Packt Publishing 出版的Flask FrameworkCookbook 一书的审稿人。译者苏丹,来自山城重庆,毕业于北京师范大学;现豆瓣资深开发工程师,主要开发作品有豆瓣FM等;有多年Python编程实践经验;曾参与《Learning Android中文版》一书翻译。 Jack Stouffer是一位有数年web应用开发经验的程序员。他在两年前将他所有的项目都切换到了Flask。他目前在位于密歇根州奥本山的Apollo America工作,使用Python、Flask和JavaScript编写企业内部业务工具。Jack是开源技术的信徒与支持者,在GitHub上发布以他所推荐的zui佳实践原则编写的Flask范例时,立即成为了线上受欢迎的Flask代码库。Jack还曾经担任Packt Publishing的《Flask Framework Cookbook》一书的审稿人。

目录

第1章 入门1

使用Git进行版本控制1

安装Git1

Git基础2

使用pip管理Python包4

Windows上安装pip4

在Mac OS X和Linux上安装Python包管理器pip5

pip基本操作6

用virtualenv的沙盒管理依赖7

virtualenv基础7

开始我们的项目8

使用Flask Script9

总结10

第2章 使用SQLAlchemy创建数据模型11

设置SQLAlchemy11

Python安装包12

Flask SQLAlchemy12

我们的第1个数据模型13

创建user表15

CRUD16

新增数据16

读取数据16

修改数据19

删除数据19

数据模型之间的关联20

一对多20

多对多23

SQLAlchemy会话对象的方便之处25

使用Alembic进行数据库迁移26

总结28

第3章 通过模板创建视图29

Jinja的语法29

过滤器30

注释34

if语句34

循环35

宏36

Flask特有的变量和函数37

创建视图38

视图函数38

编写和继承模板41

Flask WTForms45

WTForms基础46

自定义检验器48

发布评论48

总结51

第4章 使用蓝图创建控制器52

请求的构建和销毁,以及全局变量52

错误页面53

使用类描述视图53

方法视图55

蓝图55

总结57

第5章 进阶的应用结构58

模块项目58

重构代码59

应用的工厂模式62

总结64

第6章 保护应用安全65

准备工作65

修改用户模型65

创建表单67

创建视图71

社交网络登录76

使用会话84

使用Flask Login87

用户角色90

总结95

第7章 在Flask中使用NoSQL数据库96

NoSQL数据库的种类96

键值数据库97

文档数据库97

列式数据库98

基于图的数据库100

关系型数据库与NoSQL的比较101

关系型数据库的优势102

NoSQL数据库的优势103

在什么情况下用什么数据库104

在Flask中使用MongoDB105

安装MongoDB106

配置MongoEngine106

定义文档107

CRUD112

NoSQL中的关联关系117

利用NoSQL的强大能力120

总结126

第8章 构建RESTful API127

REST是什么127

构建RESTful Flask API130

GET请求131

格式化输出132

请求中的参数135

POST请求138

身份认证140

PUT请求143

DELETE请求146

总结147

第9章 使用Celery编写异步任务148

Celery是什么148

配置Celery和RabbitMQ150

在Celery中创建任务151

运行Celery任务154

Celery工作流155

监控Celery160

在Flower中通过网页进行监控161

创建一个提醒应用161

生成每周摘要163

总结167

第10章 有用的Flask扩展168

Flask Script168

Flask Debug Toolbar170

Flask Cache173

缓存函数和视图174

缓存带参数的函数175

缓存带有查询参数的路径177

使用Redis作为缓存后端177

使用memcached 作为缓存后端178

Flask Assets178

Flask Admin181

编写基础管理页面182

编写数据库管理页面184

增强文章管理功能185

编写文件系统管理页面187

保护Flask Admin的安全188

Flask Mail189

总结190

第11章 构建你自己的扩展192

编写一个YouTube Flask扩展192

创建Python包196

通过Flask扩展修改响应数据198

总结200

第12章 测试Flask应用201

什么是单元测试201

怎样进行测试202

对应用进行单元测试202

测试路由函数203

用户界面测试208

测试覆盖率213

测试驱动的开发216

总结218

第13章 部署Flask应用219

部署在你自己的服务器上219

使用fabric把代码推送到服务器220

使用supervisor运行你的Web服务器222

Gevent224

Tornado225

Nginx和uWSGI226

Apache和uWSGI229

部署在Heroku上230

使用Heroku Postgres231

在Heroku中使用Celery232

在AWS上部署应用233

在Amazon Elastic Beanstalk上使用Flask233

使用Amazon Relational Database Service235

在Amazon Simple Queue Service中使用Celery236

总结237

课课家教育

未登录