在談Python中Django框架和Flask框架的區別以前,咱們須要先探討以下幾個問題。python
爲了更好地闡述這個問題,咱們把開發一個應用的過程進行類比,每每開發一個應用(web應用、系統應用)跟建造房子的過程同樣,須要先打地基,搭好骨架,而後一塊磚一塊磚疊上去。程序員
而開發一個應用呢?一樣也須要一個好的架構設計,數據庫建模,而後一個模塊一個模塊使用代碼實現。web
若是開發一個軟件應用不使用框架,和咱們建房子時,每一塊磚、每一根鋼筋都須要本身生產出來本質上是同樣的。數據庫
顯而易見,若是在建造房子以前,每一塊磚頭、每一種建材,都須要咱們本身去生產的話,建造房子的效率是極低的,甚至可能一生也沒法把房子建造好。django
在開發應用系統時,使用框架能夠帶來以下好處:編程
大大提高開發效率flask
讓應用開發更加規範、拓展性更強後端
讓程序員把更多的精力放在業務邏輯的實現上,而不是重複、而複雜的基礎環境上(好比web服務器、底層實現等)服務器
在Python編程語言的世界裏,功能最強大、最流行的兩個框架。架構
不只在web後端開發、微服務開發,同時在ERP系統開發、API接口開發等領域,這兩個框架應用很是普遍。
若是Django相似於精裝修的房子,自帶豪華傢俱、很是齊全功能強大的家電,什麼都有了,拎包入住便可,十分方便。
而Flask相似於毛坯房,本身想把房子裝修成什麼樣本身找材料,買傢俱本身裝。材料和傢俱種類很是豐富,而且都是現成免費的,直接拿過去用便可。
Flask:
Django:
很是適合企業級網站的開發,可是對於小型的微服務來講,總有「殺雞焉有宰牛刀」的感受,體量較大,很是臃腫,定製化程度沒有Flask高,也沒有Flask那麼靈活。
全球著名的stackshare網站對Django和Flask這兩個框架的調查分析。
從全球開發者關注程度上:Django爲5.8K,Flask爲3.31K
從國外招聘網站崗位需求上:提到Django的有1.77K,Flask爲942
從著名的問答網站stack overflow提問數量上:Django 196K,Flask爲27.6K
從全球著名的代碼託管平臺上的star和fork數量上:Django分別爲41.3K、17.8K,Flask分別爲43.8K、12.3K
使用Flask來完成:
第一步,安裝Flask,pip install flask
第二步,建立my_first_app.py文件,添加以下代碼
完成最簡單的Hello World功能,Flask只須要7行代碼,很是簡單、方便。
使用Django來完成:
第一步,安裝Django,pip install django
第二步,建立工程項目目錄,django-admin startproject myproject
第三步,建立子應用,python manage.py startapp myapp
第四步,在myapp應用所在目錄中的views.py文件中,添加以下代碼
第五步,在myapp應用所在目錄中建立urls.py路由文件,並添加以下代碼
第六步,在主路由文件中添加路由。
從上面的操做步驟可知,實現一樣的一個功能,每每Flask較爲簡單,代碼較少,而Django所涉及到的流程較多,工程項目結構清晰,在大型項目中具備優點。
若是你想搞懂Python web開發WSGI協議原理以及實現過程、或者你想靈活定製組件,徹底DIY你的應用、想實現微服務,那麼建議你選擇Flask。
若是你關注產品的最終交付、想快速開發一個大的應用系統(好比新聞類網站、商城、ERP等),那麼建議你選擇Django,你想獲得的功能它都有,想不到的功能它也有。