Python測試開發中Django和Flask框架的區別

在談Python中Django框架和Flask框架的區別以前,咱們須要先探討以下幾個問題。python

1、爲何要使用框架?程序員

爲了更好地闡述這個問題,咱們把開發一個應用的過程進行類比,每每開發一個應用(web應用、系統應用)跟建造房子的過程同樣,須要先打地基,搭好骨架,而後一塊磚一塊磚疊上去。web

而開發一個應用呢?數據庫

一樣也須要一個好的架構設計,數據庫建模,而後一個模塊一個模塊使用代碼實現。django

若是開發一個軟件應用不使用框架,和咱們建房子時,每一塊磚、每一根鋼筋都須要本身生產出來本質上是同樣的。編程

顯而易見,若是在建造房子以前,每一塊磚頭、每一種建材,都須要咱們本身去生產的話,建造房子的效率是極低的,甚至可能一生也沒法把房子建造好。flask

在開發應用系統時,使用框架能夠帶來以下好處:後端

一、大大提高開發效率;服務器

二、讓應用開發更加規範、拓展性更強;架構

三、讓程序員把更多的精力放在業務邏輯的實現上,而不是重複、而複雜的基礎環境上(好比web服務器、底層實現等);

你們在學python的時候確定會遇到不少難題,以及對於新技術的追求,這裏推薦一下咱們的Python學習扣qun:784758214,這裏是python學習者彙集地

2、爲何使用Django和Flask框架?

一、在Python編程語言的世界裏,功能最強大、最流行的兩個框架。

二、不只在web後端開發、微服務開發,同時在ERP系統開發、API接口開發等領域,這兩個框架應用很是普遍。

3、Django和Flask的區別

◆ 形象類比

若是Django相似於精裝修的房子,自帶豪華傢俱、很是齊全功能強大的家電,什麼都有了,拎包入住便可,十分方便。

而Flask相似於毛坯房,本身想把房子裝修成什麼樣本身找材料,買傢俱本身裝。

材料和傢俱種類很是豐富,而且都是現成免費的,直接拿過去用便可。

◆ 在體量上的區別

Flask:小巧、靈活,讓程序員本身決定定製哪些功能,很是適用於小型網站。

對於普通的工人來講將毛坯房裝修爲城市綜合體仍是很麻煩的,使用Flask來開發大型網站也同樣,開發的難度較大,代碼架構須要本身設計,開發成本取決於開發者的能力和經驗。

Django:大而全,功能極其強大,是Python web框架的先驅,用戶多,第三方庫極其豐富。

很是適合企業級網站的開發,可是對於小型的微服務來講,總有「殺雞焉有宰牛刀」的感受,體量較大,很是臃腫,定製化程度沒有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。

◆ 完成一樣一個Hello World功能

使用Flask來完成:

第一步,安裝Flask,pip install flask

第二步,建立my_first_app.py文件,添加以下代碼

完成最簡單的Hello World功能,Flask只須要7行代碼,很是簡單、方便。

使用Django來完成:

第一步,安裝Django,pip install django

第二步,建立工程項目目錄,django-admin startprojectmyproject

第三步,建立子應用,python manage.py startappmyapp

第四步,在myapp應用所在目錄中的views.py文件中,添加以下代碼。

第五步,在myapp應用所在目錄中建立urls.py路由文件,並添加以下代碼

第六步,在主路由文件中添加路由。

從上面的操做步驟可知,實現一樣的一個功能,每每Flask較爲簡單,代碼較少,而Django所涉及到的流程較多,工程項目結構清晰,在大型項目中具備優點。

4、實際中如何選擇這兩個框架

若是你想搞懂Python web開發WSGI協議原理以及實現過程、或者你想靈活定製組件,徹底DIY你的應用、想實現微服務。那麼建議你選擇Flask。

若是你關注產品的最終交付、想快速開發一個大的應用系統(好比新聞類網站、商城、ERP等)。那麼建議你選擇Django,你想獲得的功能它都有,想不到的功能它也有。

5、如何才能學好框架

一、須要先學習框架的基礎知識、基本實現原理

二、結合項目實踐,提高編碼能力和業務邏輯的理解

三、翻看框架源碼,深刻理解源碼精髓(進階)

相關文章
相關標籤/搜索