《Flask Web開發》
《Flask Web開發 基於Python的Web應用開發實戰》
《Flask Web開發》是否適合新手入門Python Web開發?前端
《Flask Web開發 基於Python的Web應用開發實戰》,O'Reilly"動物書系列"的"狗書",應該是不少Flask初學者被推薦使用的入門書,可是這本書真的適合初學者嗎?web
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原創文章,請關注公衆號"許聚龍":