{eval=Array;=+count(Array);}
DjangoDjango是基于中間件的一個大型框架。框架本身的內容相當豐富,基礎部分:模版引擎、ORM、表單、路由分發這些標配,還有不少的中間件:登陸、后臺管理,這些還是官方中間件,另外還有不少的第三方中間件。關于第三方的我沒有詳細研究過,質量不太好評論。還有由ROR帶起的基于命令的Web開發方式和擴展、還有內建的數據庫遷移,基本上你呢想到的Django都有。可以說Django和Python相當匹配,前者是Web開發的萬金油,后者是開發領域的萬金油。另外Django這個框架本身還有一個專門的基金會,這個基金會是由Django的母公司成立的,估計有不少用這個框架的公司也對期捐助過。框架本身相當活躍,每隔大概8個月就有一個大版本。社區也是相當活躍,官方的Community、非官方(StackOverflow)和IRC(據說IRC是比任何一個開源項目都要活躍)基本上你碰到的問題大家都會有解決或者Workout方案。FlaskFLASK框架本身只包含路由分發,請求和響應的封裝和插件系統,在加上作者自己的Werkzeug(處理WSGI)、jinja2(模板引擎)和Flask-SQLAlchemy擴展(Model層),這幾個同一個作者的項目構成一個完整的MVC框架。對于Flask本身,一個微框架,這已經足夠了,而且它也只能提供這么多。如果你需要表單處理,請安裝Flask-WTF;如果你需要基于命令的開發模式,請安裝Flask-Script和Flask-CLI(這是一個Flask1.0的backport模塊);如果你要登陸驗證,請裝Flask-Login;如果你要后臺管理,請裝Flask-Admin。什么?!你全部都要?請裝Django。對Flask就是這么一個框架。這是一個典型的社區項目,作者在實現了一個牛X的核心以后,就撒手交給社區。各個插件的文檔分散(雖然Flask曾經出了一本書,試圖打通各個插件和Flask關系,但是當需要真正使用的時候,查文檔還是需要在不同的Chrome Tab里面切換),而且社區插件的質量、支持和活躍度也需要話很大的力氣去確認。Flask這個項目毫無疑問是優秀的:完善的官方文檔,詳細的教程()還有一個牛X的作者作為光環加持(這里可以看到作者有不少應用廣泛的項目)。但是和Django完全不在一個應用層面,我會在下一段作出比較和說明。而且Flask這個項目基本已經處于沉睡期,最新的版本0.10.1是2013年發布的,項目的代碼倉庫也是比較低的活躍度(大概是一個月10次左右的Commit和PR),1.0的發布從2014年到2016年一直說要發布,一直沒有出來。各個插件更新也是停留在2015年中。和Django比較活躍度確實令人捉急。Flask和Django的應用場景鑒于Flask和Django的特點,如果你是開發一個REST API的系統,沒有復雜的分層和邏輯的話,Flask會是一個不錯的選擇,因為框架內建的功能已經足夠你完成這個任務;又或者,你是打算實現一個大型的系統,需要自己重新實現大部分插件的內容,Flask也還是不錯,因為它足夠的簡單,能讓你快速的讀懂和擴展。其他的情況我還是推薦你用回Django。尤其是當你需要安裝大量的Flask插件,去實現Django本來就有的功能時,你就應該意識到你需要放棄Flask。當然這只是個人的看法,也沒有絕對這一說,主要還是看你想在框架上花費多少的時間。
市面上公司用django作為Python Web 開發框架相對多點,原因是功能比flask全面,官方支持強大,參考資料詳細,從而易上手,維護成本低。
個人以前做Python web開發,給公司做業務系統也是選django,flask只是私下做自己的小項目用,主要還是考慮到人手少,造輪子速度跟不上開發進度,擔不起系統上線推遲的風險,雖然造輪子更有成就感。
django和flask各有千秋,必須結合公司情況去選定使用哪個。但是作為開發人員兩種框架都應該掌握i熟悉的
3
回答1
回答7
回答3
回答4
回答2
回答10
回答0
回答10
回答3
回答