指路牌
《Flask web 开发》
《Flask Web 开发 基于 Python 的 Web 应用开发实战》
《Flask Web 开发》是否适合新手入门 Python Web 开发?
正文
《Flask Web 开发 基于 Python 的 Web 应用开发实战》,O'Reilly" 动物书系列 "的" 狗书 ", 应该是很多 Flask 初学者被推荐使用的入门书, 但是这本书真的适合初学者吗?
Python 的 Web 框架非常多, 例如 Django,Flask,Tornado,Web.py,Tornado 没有接触过, 无法评价, Django 一般都会和 "重型" 联系在一起, 很少会直接推荐给初学者, Flask 和 Web.py 都属于轻型框架, 网上有人将 Flask 与 Web.py 对比, 有一篇很有意思的 Blog 有兴趣的可以去看一下关于 Flask 和 Web.py 的一句话比较 http://ju.outofmemory.cn/entry/137665 (很老的 blog), 孰优孰略有请各位自行选择.
值得一提的是微信公众平台的入门教程文档, 就是基于 Web.py 编写的
这里要吐槽一下微信公众平台维护文档的团队, 能不能别出这么级的错误......
《Flask Web》开发是我 Web 开发的入门书, 在第一版的时候就买了, 后来书出了第二版, 也买了第二版. 这篇 Blog 的重点不是讨论 Flask 框架, 而是讨论这本书本身, 如果你选择学习 Flask, 以下意见对你才有意义.
直接抛出结论:: 这本书并不适合初学者, 或者说,"现在" 不适合了.
这个结论是基于以下几个原因
模板渲染的内容
部分章节国内无法实践
内容太过于 "系统"
以上原因其实有些是有点吹毛求疵的, 但是这些观点的出发点是两个:"对于初学者" and "想快捷搭建简单 web 服务的开发者".
模板渲染 "过时" 了......... 吗?
这个问题的答案我不得而知, 但起码在我心里, 模板渲染是 "过时的老东西", 因为当下流行的是前后端分离, 是 React,vue,Angular 三大前端框架, 而不是还需要后台操控的模版渲染.
Flask 与 Jinja2 几乎总是被同时提起的, 这本书实现的项目的整体思路都是基于 Jinja2 模板引擎的, 这在这本书发行期是没任何问题的, 但是现在前端技术的发展已经让这本书的内容跟不上了, 现在提倡的是 "前后端分离", 前后端通过 REST API 交互.
我个人是直接放弃了模板渲染, 直接从 Vue 入手的前端技术.
部分章节国内无法实践
《Flask Web 开发》一个很大的特色点就是整本书就是一个项目, 完成了整本书的教程, 就是完成一个博客系统, 就像书评说的一样, 相比于只讲解零散代码的其他书籍, 这无疑是很好的. 但,"第六章电子邮件" 必是一道坎, 因为书中的内容是基于 Gmail 的.... 众所周知的原因, 我们无法使用 Gmail 提供的 SMTP 服务, 甚至无法登陆 Gmail, 初学者必然需要在网上找寻替代解决方案(我当时是找的 126 的 SMTP 服务替代).
为什么是必然呢? 跳过这一章不行吗? 因为这本书的内容一环扣一环, 不把这个问题解决, 后续的内容就无法推进, 对于初学者, 答案明显是不行, 这是学到一定地步才能做到的.
至于后面第 17 章国内很少使用的云平台就更不提了
内容太过于 "系统"
这可能是最奇怪的一个原因,"系统" 点难道还错了? 当然没错, 但是还是那个原因, 不适合初学者. 在我看来初学者能编写视图函数, 操作 ORM, 学会使用钩子, 配置跨域, 已经能够完成一个简单的 Web 应用了. 而数据库迁移, 工厂函数, 蓝本, 单元测试等, 不是一个初学者能 hold 的住的内容? 但是这些知识在书中是交叉进行, 并且从第二部分开始强制全部内容都是基于工程化结构 (工厂函数, 蓝本等) 进行的, 这里我在初学时是直接被劝退了的.
即使跳开初学者这一原因, 就现在而言, 我也不是很喜欢使用 Flask 的工程化结构, 为什么? 这可能需要先明确一点,"我为什么要使用 Flask?", 因为轻便, 快捷. 我选择 Flask 不是为了开发一个商用工程项目(如果是这个目的肯定就用 SpringBoot 了), 而是为了快, 短时间内完成一个 POC, 或者在学习集群等技术时构建一个简单的服务, 这些需求往往只需要几十行代码就能完成, 为什么要自找麻烦的使用工程化的目录结构呢?
最近写的自己的博客系统雏形, 配置跨域, 视图函数, ORM, 基于 Web token 的登陆管理, 也才不到 140 行
结论
所以这本书的正确打开方式是什么呢?
我个人看来, 这本书第 5 章之前的内容 (前 60 页, 整本书约 200 页) 是初学者可以看的, 会有很多重要概念, 但是再往后的, 只推荐第 14 章, 比较矛盾的点是第 14 章是基于工程化结构编写的, 直接看会有一些难度...... 所以现在这本书在我手里等价于一本工具书, 需要的时候翻阅需要的章节, 而且大部分时间需要再处理一遍示例代码才能使用, 但是从始至终, 这本书我都没有系统从头看到尾.
以上内容, 希望能给想要以此本书的入门 Flask 的人一点用处.
####
要获取更多 Haytham 原创文章, 请关注公众号 "许聚龙":
来源: http://www.bubuko.com/infodetail-3199434.html