1. 程式人生 > >我為什麽不用Django而用Flask?

我為什麽不用Django而用Flask?

技術 系統 str 編程語言 估算 http 帶來 代碼 架構

  前言

  對於初學者來說,找到一個好的框架來學習或者項目開發都是非常有必要的,而當你有一定開發經驗後,你應該選擇適合當前業務需要的框架。我這裏並不想探討哪個框架好哪個不好,這個永恒的話題就跟探討“世界上哪種編程語言最屌”是一樣的。

  分析

  面對一個項目需求,不要著急去開發,學會控制開發成本的前提是明白技術難點可能帶來的額外的時間消耗。對於我這種中級Python開發人員來說,並沒有實質上的項目經驗,沒有開發過大型的線上項目,無非是爬蟲寫了一堆又一堆,本質上跟初學者差別不大,充其量也就算一個編碼經驗豐富的碼農而已。所以在遇到難度相對較大的項目需求時,往往會糾結該如何選擇框架上,這也會浪費掉大量的時間。

  選擇

  所謂項目的難度大,要麽是業務類型繁多,業務邏輯復雜。要麽是涉及到一些擴展功能,比如需要調用系統的shell命令、串口通信等等。前者沒有技術難點,僅僅是業務復雜,考慮到後期項目擴展,可能需要一個良好的系統架構。對於後者來說,可能存在難以實現的技術難點,要想搞定所有的技術難點,需要重新學習對應的知識,包括後面的代碼測試,環境模擬測試等等一系列操作,這個時間是很難估算的。

  Pythonweb框架裏面比較出名的Django和Flask的選擇很是讓人頭疼。

  在初學Pythonweb的時候,很多老手都推薦學習Django,原因是因為Django相對比較完善,功能非常強大,有點像著名的ThinkPHP框架。老手們說的並沒有錯,但是這樣一開始就入手一款重量級框架可能不是一個好的開始。

  Django框架的強大就肯定意味著它是一款重量級框架,而對於初學者來說,這可能是一種災難。如果初學者沒有其他語言的基礎,沒有後端開發的經驗,那麽這種方式可能直接就導致放棄。

附:Django Web開發指南.pdf http://www.gooln.com/other/55845.html

  Pythonweb的入門,使用web.py是非常好的選擇。不管是Django還是Flask,他們設計的基礎都是web.py。不同的是Django設計的更復雜,更像是一間做好硬裝的房子,你只需要稍微做一下軟裝,布置一下家具就能把整個房間設計的很漂亮。

  Flask就不太一樣了,它僅僅幫你做好了建房子所需要的材料,房子如何搭建,如何裝修全都得靠你自己動手,所以同一個項目,使用Flask來做,不同的人可能設計出來的架構完全不同,而使用Django框架做出來的架構可能都差不多了。

  對於用過MVC框架的開發者來說,上手Django是很快的,因為Django也是MVC模式。Flask就沒有什麽模式可言了,僅僅提供了一種服務而已,要搞成什麽樣子全靠自己。所以如果你想自己去設計目錄結構,模塊的劃分等個性化設計時,推薦使用Flask。弊端也很明顯,如果你不是一個經驗豐富的開發者,你很可能會把整個項目架構設計的亂七八糟。

  對於我來說,很多時候一個項目剛開始並不覺得是個大項目,做到後面功能越來越多,擴展越來越多,就變成了一個大項目,而使用Flask就很容易的完成這個任務,小型項目快速開發,大項目設計靈活。

我為什麽不用Django而用Flask?