溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

《Flask Web開發(fā) 基于Python的Web應(yīng)用開發(fā)實(shí)戰(zhàn)》簡評

發(fā)布時(shí)間:2020-07-04 18:54:35 來源:網(wǎng)絡(luò) 閱讀:431 作者:wx5b3c8b549a762 欄目:開發(fā)技術(shù)

指路牌

《Flask Web開發(fā)》
《Flask Web開發(fā) 基于Python的Web應(yīng)用開發(fā)實(shí)戰(zhàn)》
《Flask Web開發(fā)》是否適合新手入門Python Web開發(fā)?

正文

《Flask Web開發(fā) 基于Python的Web應(yīng)用開發(fā)實(shí)戰(zhàn)》,O'Reilly"動物書系列"的"狗書",應(yīng)該是很多Flask初學(xué)者被推薦使用的入門書,但是這本書真的適合初學(xué)者嗎?

Python的Web框架非常多,例如Django、Flask、Tornado、Web.py,Tornado沒有接觸過,無法評價(jià),Django一般都會和"重型"聯(lián)系在一起,很少會直接推薦給初學(xué)者,F(xiàn)lask和Web.py都屬于輕型框架,網(wǎng)上有人將Flask與Web.py對比,有一篇很有意思的Blog有興趣的可以去看一下關(guān)于Flask和web.py的一句話比較(很老的blog),孰優(yōu)孰略有請各位自行選擇。
值得一提的是微信公眾平臺的入門教程文檔,就是基于web.py編寫的

這里要吐槽一下微信公眾平臺維護(hù)文檔的團(tuán)隊(duì),能不能別出這么級的錯誤......

《Flask Web開發(fā) 基于Python的Web應(yīng)用開發(fā)實(shí)戰(zhàn)》簡評

《Flask Web》開發(fā)是我Web開發(fā)的入門書,在第一版的時(shí)候就買了,后來書出了第二版,也買了第二版。這篇Blog的重點(diǎn)不是討論Flask框架,而是討論這本書本身,如果你選擇學(xué)習(xí)Flask,以下意見對你才有意義。

直接拋出結(jié)論::這本書并不適合初學(xué)者,或者說,"現(xiàn)在"不適合了。

這個(gè)結(jié)論是基于以下幾個(gè)原因

  • 模板渲染的內(nèi)容
  • 部分章節(jié)國內(nèi)無法實(shí)踐
  • 內(nèi)容太過于"系統(tǒng)"

以上原因其實(shí)有些是有點(diǎn)吹毛求疵的,但是這些觀點(diǎn)的出發(fā)點(diǎn)是兩個(gè):"對于初學(xué)者" and "想快捷搭建簡單web服務(wù)的開發(fā)者"。

模板渲染"過時(shí)"了.........嗎?

這個(gè)問題的答案我不得而知,但起碼在我心里,模板渲染是"過時(shí)的老東西",因?yàn)楫?dāng)下流行的是前后端分離,是React、Vue、Angular三大前端框架,而不是還需要后臺操控的模版渲染。

Flask與Jinja2幾乎總是被同時(shí)提起的,這本書實(shí)現(xiàn)的項(xiàng)目的整體思路都是基于Jinja2模板引擎的,這在這本書發(fā)行期是沒任何問題的,但是現(xiàn)在前端技術(shù)的發(fā)展已經(jīng)讓這本書的內(nèi)容跟不上了,現(xiàn)在提倡的是"前后端分離",前后端通過Rest API交互。

我個(gè)人是直接放棄了模板渲染,直接從Vue入手的前端技術(shù)。

部分章節(jié)國內(nèi)無法實(shí)踐

《Flask Web開發(fā)》一個(gè)很大的特色點(diǎn)就是整本書就是一個(gè)項(xiàng)目,完成了整本書的教程,就是完成一個(gè)博客系統(tǒng),就像書評說的一樣,相比于只講解零散代碼的其他書籍,這無疑是很好的。但,"第六章電子郵件"必是一道坎,因?yàn)闀械膬?nèi)容是基于Gmail的....眾所周知的原因,我們無法使用Gmail提供的SMTP服務(wù),甚至無法登陸Gmail,初學(xué)者必然需要在網(wǎng)上找尋替代解決方案(我當(dāng)時(shí)是找的126的SMTP服務(wù)替代)。

為什么是必然呢?跳過這一章不行嗎?因?yàn)檫@本書的內(nèi)容一環(huán)扣一環(huán),不把這個(gè)問題解決,后續(xù)的內(nèi)容就無法推進(jìn),對于初學(xué)者,答案明顯是不行,這是學(xué)到一定地步才能做到的。

至于后面第17章國內(nèi)很少使用的云平臺就更不提了

內(nèi)容太過于"系統(tǒng)"

這可能是最奇怪的一個(gè)原因,"系統(tǒng)"點(diǎn)難道還錯了?當(dāng)然沒錯,但是還是那個(gè)原因,不適合初學(xué)者。在我看來初學(xué)者能編寫視圖函數(shù),操作ORM,學(xué)會使用鉤子,配置跨域,已經(jīng)能夠完成一個(gè)簡單的web應(yīng)用了。而數(shù)據(jù)庫遷移、工廠函數(shù)、藍(lán)本、單元測試等,不是一個(gè)初學(xué)者能hold的住的內(nèi)容?但是這些知識在書中是交叉進(jìn)行,并且從第二部分開始強(qiáng)制全部內(nèi)容都是基于工程化結(jié)構(gòu)(工廠函數(shù)、藍(lán)本等)進(jìn)行的,這里我在初學(xué)時(shí)是直接被勸退了的。

即使跳開初學(xué)者這一原因,就現(xiàn)在而言,我也不是很喜歡使用Flask的工程化結(jié)構(gòu),為什么?這可能需要先明確一點(diǎn),"我為什么要使用Flask?",因?yàn)檩p便,快捷。我選擇Flask不是為了開發(fā)一個(gè)商用工程項(xiàng)目(如果是這個(gè)目的肯定就用SpringBoot了),而是為了快,短時(shí)間內(nèi)完成一個(gè)POC,或者在學(xué)習(xí)集群等技術(shù)時(shí)構(gòu)建一個(gè)簡單的服務(wù),這些需求往往只需要幾十行代碼就能完成,為什么要自找麻煩的使用工程化的目錄結(jié)構(gòu)呢?

最近寫的自己的博客系統(tǒng)雛形,配置跨域、視圖函數(shù),ORM,基于web token的登陸管理,也才不到140行

結(jié)論

所以這本書的正確打開方式是什么呢?

我個(gè)人看來,這本書第5章之前的內(nèi)容(前60頁,整本書約200頁)是初學(xué)者可以看的,會有很多重要概念,但是再往后的,只推薦第14章,比較矛盾的點(diǎn)是第14章是基于工程化結(jié)構(gòu)編寫的,直接看會有一些難度......所以現(xiàn)在這本書在我手里等價(jià)于一本工具書,需要的時(shí)候翻閱需要的章節(jié),而且大部分時(shí)間需要再處理一遍示例代碼才能使用,但是從始至終,這本書我都沒有系統(tǒng)從頭看到尾.

以上內(nèi)容,希望能給想要以此本書的入門Flask的人一點(diǎn)用處。

####
要獲取更多Haytham原創(chuàng)文章,請關(guān)注公眾號"許聚龍":
《Flask Web開發(fā) 基于Python的Web應(yīng)用開發(fā)實(shí)戰(zhàn)》簡評

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI