深入理解 Flask

出版日期:2016-7-1
ISBN:9787121292319
作者:[美]Jack Stouffer
页数:256页

内容概要

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

书籍目录

第1章 入门 1
使用Git进行版本控制 1
安装Git 1
Git基础 2
使用pip管理Python包 4
在Windows上安装pip 4
在Mac OS X和Linux上安装Python包管理器pip 5
pip基本操作 6
用virtualenv的沙盒管理依赖 7
virtualenv基础 7
开始我们的项目 8
使用Flask Script 9
总结 10
第2章 使用SQLAlchemy创建数据模型 11
设置SQLAlchemy 11
Python安装包 12
Flask SQLAlchemy 12
我们的第1个数据模型 13
创建user表 15
CRUD 16
新增数据 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 WTForms 45
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 Login 87
用户角色 90
总结 95
第7章 在Flask中使用NoSQL数据库 96
NoSQL数据库的种类 96
键值数据库 97
文档数据库 97
列式数据库 98
基于图的数据库 100
关系型数据库与NoSQL的比较 101
关系型数据库的优势 102
NoSQL数据库的优势 103
在什么情况下用什么数据库 104
在Flask中使用MongoDB 105
安装MongoDB 106
配置MongoEngine 106
定义文档 107
CRUD 112
NoSQL中的关联关系 117
利用NoSQL的强大能力 120
总结 126
第8章 构建RESTful API 127
REST是什么 127
构建RESTful Flask API 130
GET请求 131
格式化输出 132
请求中的参数 135
POST请求 138
身份认证 140
PUT请求 143
DELETE请求 146
总结 147
第9章 使用Celery编写异步任务 148
Celery是什么 148
配置Celery和RabbitMQ 150
在Celery中创建任务 151
运行Celery任务 154
Celery工作流 155
监控Celery 160
在Flower中通过网页进行监控 161
创建一个提醒应用 161
生成每周摘要 163
总结 167
第10章 有用的Flask扩展 168
Flask Script 168
Flask Debug Toolbar 170
Flask Cache 173
缓存函数和视图 174
缓存带参数的函数 175
缓存带有查询参数的路径 177
使用Redis作为缓存后端 177
使用memcached 作为缓存后端 178
Flask Assets 178
Flask Admin 181
编写基础管理页面 182
编写数据库管理页面 184
增强文章管理功能 185
编写文件系统管理页面 187
保护Flask Admin的安全 188
Flask Mail 189
总结 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
Gevent 224
Tornado 225
Nginx和uWSGI 226
Apache和uWSGI 229
部署在Heroku上 230
使用Heroku Postgres 231
在Heroku中使用Celery 232
在AWS上部署应用 233

作者简介

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


 深入理解 Flask下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计3条)

  •     我是本书的译者,第一版上架后发现存在一些错漏之处,以及需要说明的地方。在此总结一下,非常感谢找出问题的各位朋友。 如果发现其他问题,麻烦提醒我一下,任何方式都可以。 Packt原版书页面可以下载源码。 博文视点的本书页面也可以下载源码以及提交勘误。 github 上的源码。(@青石水 提供) 第 XVIII 页: from flask.ext.sqlalchemy import SQLAlchemy 书中有多处 from flask.ext.xx import 的语句,这种方式可以工作,但官方更推荐 from flask_* import 的方式。在 Flask 0.11 中已经会产生 warning。(issue,PR) 第 12 页约 2/3 处: AQLAlchemy 应为 SQLAlchemy。 第 15 页: Style - "db", "User" in first line as Code Highlight 这句请忽略,是原英文版中的样式附注被误排出来了,虽然删掉,但之后被中文版编辑照原文误恢复出来了。 第 16 页: “叫做 users 的表” 应为 user,原作者笔误,下同。(此处本应有译注) 第 48 页: 虽然其他地方的缩进是4格,但 custom_email 函数中的缩进是两格,原文如此。猜测是排版需要。 第 48 页: form = CommentForm() 此句应缩进。 第 52 页 倒数第二行 g.user = ..... 此句应缩进。 第 96 页 NoSQL(Not Only SQL)数据库可以是任何非关系型数据库…… 注意这里只是一家之言,NoSQL 的定义实际上是存在争议的。见 FPs 的批注 第 99 页倒数第二行: 最后,由于没有 JSON 操作,…… 这里是我笔误,应为 JOIN 操作。 第 148 页第二段第一句: 它使用 Python 的多任务库…… 这里是我笔误,应为多进程库(multiprocessing library)。 第 150 页 在本书写作时,RabbitMQ 与 Celery 还不能和 Python 3 一起使用。 注意,现在已经可以了。第152页 页首代码下面第一行 make_selery 应该是 make_celery,我的笔误。第 159 页第二段第一行: 熟悉 nix 的读者会发现…… 应为 *nix,排版后星号神秘消失。第230页 部署在 Heroku 上 第一段最后一句,应该是 PaaS 不是 SaaS。我的笔误。
  •     终于见到第二本关于Flask的书籍,发现之后果断下单,虽然价格贵了点,好吧,没办法,我穷。拿到后发现好薄,当然,不能通过一本书的厚度评价一本书的好坏,但是这个价格我本以为会很厚的。为什么会这样想?两个原因,一是:深入理解Flask,既然是深入,那应该就会讲的比较详细,二是:计算机数据普遍比较厚比较贵,这本书仅仅满足了后者。好了,来看内容。由于之前读过《 Flask Web开发:基于Python的Web应用开发实战 》几遍(电子和纸质书都买了),所以来看这本书很容易,很快就读完了。挺失望的。期待中的对Flask的更详细的讲解,更多的Flask扩展,更完整的例子一个都没有出现。很好奇没有Blueprint基础的人看完这本书是如何理解的,jinja的讲解也是相当简单概略,实在无法往深入理解里想。对这本书比较失望。
  •     我的短评如下==看了下目录, 只要拿flask做过项目的, 差不多不用看了。 flask没啥讲头,又不去讲flask和jinja2, flask 和 werkzeug 的详细细节。 不讲这些就不能叫深入理解了。 只能叫 《深入浅出Flask》 或者 《如何掌握Flask》。== 目录浏览了下, 看到的都是如何入手去做一个项目,当然不否认这本书对于Flask入门的朋友的益处。但是作为一个用了Flask做了好几个中型项目的工程师来说,我是被书名吸引过来的, 但是看到目录却很失望, 这些我都用过, flask组件的API Doc 反复看几遍就都能掌握的点, 竟然书名写了《深入理解》, 英文书名叫做 mastering, 意思其实就是掌握,真的不能用深入理解。所以这本根本不是进阶书籍, 还是一本入门书籍。真是进阶, 还是要讲到 werkzeug 技术细节, Flask 基于werkzeug的实现==我真觉得, 实际项目中遇到的有趣的Flask技巧比教你使用这些 标准三方库来的好玩。==最后,负责任的说, 我还是推荐入门的朋友可以看看, 对于入门的朋友这本书很全面。 最起码项目中平时用到的东西都能涵盖在里面。比起三年前我自己边看官方doc和第三方库的doc来摸索怎么构建一个项目来的轻松很多

精彩短评 (总计9条)

  •     苏老师翻译的!台风天和Flask更配噢
  •     就算能抵制Flask的强大诱惑,当你看到译者名,还能不心动?
  •     珍爱生命,我用 Flask :)
  •     內容全面,Flask 的自由需要開發者有更多好習慣,此書就包含很多規範的指南,和另外一本《Flask Web 開發》,作爲入門書籍非常合適。
  •     看来这些mastering某个framework的书都不能读,谈不上深入理解,只能说是教会你怎样写不是demo的代码,当然也是写不出来production级别的东西的。
  •     比flask web development更系统性的讲解flask的使用,就是这本书的译名很让人误解。
  •     并不深入。。。但是内容还不错,比各种纠结前端的另一本 Flask 书好的多
  •     翻译质量不错,排版错误较多
  •     还是写php吧
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024