大約十年前,Java佔據主導地位,它功能多,很是靈活,是開發人員首選的開發平臺。如今,當Python逐漸受歡迎,技術領域已經發生了變化。Python領先Java以前發展成一種解釋性的高級動態編程語言,具備靈活性,代碼可重用性和高級別兼容性。程序員
不少框架都是用Python編寫的,當中有Django,Flask和Pyramid很是流行,被用於爲企業開發Web應用程序。三選一,不只天秤座的程序猿會糾結,其餘程序員們也照樣糾結:該選誰呢?數據庫
做爲開發人員,您要麼擁有最愛的一個框架,要麼犯選擇困難症。在深刻分析以前,讓咱們先對這三個框架進行概述。Flask是一個微型Web框架,由於它不須要工具或庫,也沒有數據庫抽象層。若是要向此Web框架添加功能,則須要使用擴展。Flask基本上針對只須要簡單組件的小型應用程序。編程
框架之別app
Django和Pyramid都是使用Python開發的開源框架,適用於更大的應用程序。這二者在技術方面存在很大差別,在它們處理應用程序可擴展性及適應性的方式也有不一樣。在Pyramid的狀況下,開發人員須要混合和匹配組件來構建應用程序,由於開發人員須要選擇URL結構,模板樣式,數據庫和其餘相關組件來構建應用程序。另外一方面,使用Django,您會發現一切都是內置的,您只須要安裝框架並開始編寫和開發部分。您不須要獲取組件或將它們與您的框架混合使用。Django由對象關係映射(ORM)組成,它將數據模型與關係數據庫鏈接起來,以存儲,保存和檢索來自Web框架的數據。Flask和Pyramid爲開發人員提供了保存和檢索數據的方法靈活性。Flask和Pyramid的首選ORM是DynamoDB或MongoDB以及常規SQLite。框架
如今您已經基本瞭解這三個框架,讓咱們開始比較這三個框架,以便爲開發人員輕鬆選擇合適的框架。curl
社區之別編程語言
開源框架網站都有社區,您能夠去留言,和其餘小夥伴們互動。Django擁有最活躍的社區,其中包含近80,000個StackOverflow問題。Django開發人員和用戶都有本身的博客,有不少妙文來幫助您開發使用這個框架。工具
然而,Flask和Pyramid的社區就相形見絀了,由於與Django相比,他們的成員更少。但就郵件列表和IRC活動而言,他們也有不錯的貢獻。固然,Flask的StackOverflow問題只有5000,比Django創建的要少得多。這兩位「明星」在Github上地位幾乎不相上下。若是要使用這些框架,則須要BSD派生的許可證實。學習
因此,當你談論社區和支持時,你就會知道Django贏了。網站
自助引導之異
Bootstrapping是指您無需任何外部輸入便可開始構建應用程序。當你比較三個框架的引導功能時,你會發現Django和Pyramid都帶有內置的引導工具,而Flask沒有任何內置功能。您將須要依賴擴展來構建應用程序,由於此框架僅針對小型應用程序。
Flask編碼很是簡潔,簡單。所以,學習難度較低,這也是此框架不須要引導的緣由。Flask使用藍圖,以防有一個應用程序須要在組件之間進行更多分離。
Pyramid和Django適用於更大的項目,這也是須要引導的緣由。對於Django,項目是由各個應用程序組成,Django的引導以這種方式建立。Flask和Pyramid將項目視爲一整個應用程序。學習Django有點困難,由於此框架可用的示例代碼較少。
模板之別
這是三個框架的最終比較點。大多數開發人員所關注的是一個能夠輕鬆快速響應HTTP請求的應用程序,而用戶則但願使用curl與Web應用程序進行通訊。
這三個框架都提供了對HTTP的出色響應,並提供了填充HTML的簡單方法。經過這種模板,開發人員能夠輕鬆地將信息注入網頁而無需使用AJAX,從而提供細心的用戶體驗。這裏發生的是你只須要往返一次頁面及動態數據來檢索結果,這是移動網站所須要的,由於移動用戶須要網頁加載更快,以便用戶繼續使用應用程序。
結論
在這三個框架中,Pyramid是最靈活的,由於它可用於構建小型和大型應用程序。許多開源社區都信任Pyramid用於基於事件的應用程序。該框架的惟一問題是它提供了許多可能讓開發人員都感到困惑的替代方案。
Django很是受歡迎,而且已經被用於開發Pinterest,Instagram等應用程序。對於常見的要求,Django使用默認案例,是中大型文段的最佳選擇。
若是您想開發一個小應用程序並快速啓動它,那麼您必須使用Flask。它能夠在現有API上構建簡單的界面,並創造出色的體驗。