《Flask Web开发 基于Python的Web应用开发实战》简评

指路牌

《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的一句话比较(很老的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原创文章,请关注公众号"许聚龙":

原文地址:https://blog.51cto.com/13852791/2438065

时间: 2024-10-11 22:50:10

《Flask Web开发 基于Python的Web应用开发实战》简评的相关文章

《你的灯还亮着吗?》读后感(一)

经过老师的推荐,看了一本关于我们软件工程专业方面的书,书名为<你的灯还亮着吗?>中文版,看过这本书之后,借用好搜百科的一句话:“这本书为人们思考能力的提高提供了一些启迪性的帮助.全书幽默地引导读者在处理问题时首先应该识别真正的问题,然后确定问题的拥有.”<你的灯还亮着吗?>全书中间贯穿了几个故事,透过这些故事让人对“问题”以及如何探究真正的问题这个概念有了进一步的了解.这本书不愧被称为管理者必读书之一.

《你的灯还亮着吗》读书笔记1

<你的灯还亮着吗>这本书,如果从代序开始算起的话,那么章柏幸的代序就已经让我从第一印象中得知了这本所要讲述的内容. 这是一本充满问题的书,同时也是一本教会大家如何解决问题的书,它会告诉我们一种思维,一种解决问题的思路,而不是某一种具体的解决问题的方法.作者的讲述能力还是很厉害的,因为他每讲的一个故事,都会吸引我从不同的角度去思索问题的所在,在前几篇的阅读中,第一个故事让我颇有感触. 第一个故事讲的事一个电梯使用的故事,当我看到电梯调度出现问题之后,我的第一反应和大多数人一样,我在努力的去试想各

《你的灯还亮着吗》 阅读笔记一

你的灯还亮着吗? 作者没有按部就班的告诉我们解决问题的方法,所以我们可以通过阅读概括出自己的感悟 解决一个问题的开始是要弄清问题的来源,了解问题的本质,如何更正确的定义问题 书中说到:“问题其实就是你期望的东西跟你体验的东西之间的差别”. 我们需要搞清楚“问题是什么”,不要迫不及待地就陷入解决问题的情形中,不要把问题的解决办法误认为是问题的定义. 就像书中说到的,你也许不能肯定自己对问题的定义有了正确的解释,可是不要放弃我们追逐问题的脚步

你的灯还亮着吗?阅读笔记之三

06你的灯还亮着吗?阅读笔记之三 问题最难以处理的部分恰恰是去意识到它们的存在. 如果在你对问题的理解中,你想不出至少 3 样可能出错的东西,那么你并没有真正的理解这个问题. 每种解决方法都会带来新的问题,我们永远都不能消灭问题.问题.解决方法以及新的问题交织成一条无穷无尽的锁链.我们能期望的最好结果就是新的问题没有我们“解决了”的那个那么棘手.我们使问题变得不那么棘手,其实只是把问题放在“别人家的后院儿里”.这种技巧叫做转嫁问题.新的问题常常是在无意识的情况下产生的. 当我们把我们的设计或定义

《你的灯还亮着吗》阅读笔记1

一开始看到这本书的名字的时候,感觉这就是一本励志书,“你的灯还亮着吗”,就是在说,你还有没有在深夜里还用功,加班编程,但是在读了开头第一章的时候,发现这就是在说明告诉读者,要怎么对待问题,怎么看待问题,怎么解决问题.问题其实就是你期望的东西和你体验的东西之间的差别,大多数情况下,问题的根源在你自己身上,哪儿来回哪儿去.在这个充满问题的社会中,我们常常寻找外界给自己带来的问题,却不能注意到问题的根源常常在你自己身上.很多人都是站在自己的立场上去思考问题,自然把所有的责任都推给他人,能做到站在对方立

《你的灯还亮着吗》读书笔记2

由于本书只有短短6章,我就每两章写一篇读书笔记  第三章的题目是:什么是真正的问题?这章中讲述了,问题的存在往往被人忽视了,书中提到问题最难以处理的部分恰恰是去意识到它们的存在.我们在工作的时候往往都发生问题替代,把所有人或者这个圈子以外的人都用自己或者圈内人来替代,这样往往就把一些存在的真正的问题给忽视了.但是我们的工作面对的通常都不是我们自己,二是大众,因此我们应该从现实中,从别人身上来找到我们自己存在的问题.  第四章的一个故事中的一句点睛的话很有特色——你的灯还亮着么?这是解觉隧道车辆开

你的灯还亮着吗

你的灯还亮着吗?--发现问题的真正所在 序言 问题 :没人会读序言 解决办法 :把序言作为第一章 解决方法带来新的问题 :第一章很无聊 新的解决方法 :删了第一章,把第二章作为第一章 第一部分:问题是什么 ### 第一章: 一个问题 > __背景故事:__一个办公楼(雷龙大厦)的电梯不够用了.有的租户威胁说,如果不尽快改善电梯服务,他们就要退租. 通过电梯不够用的场景,引出: > * 问题是什么? > * 谁碰到了问题? > * 问题的本质是什么? 第二章:皮特发起了一个请愿 从不

你的灯还亮着吗(3)

问题,其实就是你期望的东西和你体验的东西之间的差别.    幻觉中的问题是真正的问题.    不要把他们的解决方法误认为是问题的定义——特别是在你使用自己的解决方法时.    如果你太轻易地解决了他们的问题,他们永远都不会相信你真的解决了他们的问题.    道德顾虑在遇到有利可图的问题时往往很快就烟消云散了.    不要过早的下结论,但是也不要忽略你的第一印象.    每种解决方法都会带来新的问题.    问题最难以处理的部分恰恰是去意识到它们的存在.    如果在对问题的理解中,你想不出至少3

《你的灯还亮着吗?》简评

我个人认为作为一个程序员除了沟通和要从不同的角度看待问题之外,我还体会到了“幽默感”在每个工作中都是值得提出的一个很重要的事情.正如书中所言:对于那些没有幽默感的人,帮他们解决问题简直就是自寻烦恼. 如果一个人尤其是领导,当他不肯接受来自外界的任何讯息,毫无幽默感而言的话,那他所率领的工作团队想必是及其枯燥的. 这个问题是什么:第二篇写的是程序员比利的一个经历,如果说其中每个公司都唯利是图的话,那就说明许许多多的工作人员都会从根本上违背了自己的道德准则,但是如果某个行业中每件事的处理方式都“必须

你的灯还亮着吗阅读笔记之三

解决问题是最后一步,建立在分析问题基础上,解决问题有多条途径,如果通过各种约束条件选择最佳的途径来解决问题是需要考虑的重要因素.问题解决后要及时进行归纳和总结,形成自己的知识库.   1.当别人能够解决问题时候千万不要越俎代庖   2.如果某人能够解决该问题当他自己却不会遇到该问题时候,首要的是让他感受到该问题   3.试试换过来指责你自己-即使只有一秒钟   4.一个小小的提醒往往别复杂的解决问题方法更有效(你的灯亮着吗)   5.任何解决问题方法都不可避免有副作用-没有最好,只有更好