收藏量4w+的Web開發框架,你還沒學?點擊收藏!

Python的Web開發,也是工作崗位比較多的領域。如果你對Python的Web開發有興趣,正打算開始學習使用Python做Web開發等,那麼學習一門基於Python的Web開發框架是必修課。

 

Python作爲當前最熱門,也是最主要的Web開發語言之一,在其二十多年的歷史中出現了數十種Web框架,比如Django、Tornado和Flask等,它們有的歷史悠久,有的發展迅速,還有的已經停止維護。

 

一、基於Python的代表性Web框架

 

下面是一些比較有代表性的框架:

Django:

Python 界最全能的 Web 開發框架,battery-include 各種功能完備,可維護性和開發速度一級棒。常有人說 Django 慢,其實主要慢在 Django ORM 與數據庫的交互上,所以是否選用 Django,取決於項目對數據庫交互的要求以及各種優化。而對於 Django 的同步特性導致吞吐量小的問題,其實可以通過 Celery 等解決,倒不是一個根本問題。Django 的項目代表:Instagram,Guardian。

 

Tornado:

天生異步,性能強悍是 Tornado 的名片,然而 Tornado 相比 Django 是較爲原始的框架,諸多內容需要自己去處理。當然,隨着項目越來越大,框架能夠提供的功能佔比越來越小,更多的內容需要團隊自己去實現,而大項目往往需要性能的保證,這時候 Tornado 就是比較好的選擇。Tornado項目代表:知乎。

 

Flask:

微框架的典範,號稱 Python 代碼寫得最好的項目之一。Flask 的靈活性,也是雙刃劍:能用好 Flask 的,可以做成 Pinterest,用不好就是災難(顯然對任何框架都是這樣)。Flask 雖然是微框架,但是也可以做成規模化的 Flask。加上 Flask 可以自由選擇自己的數據庫交互組件(通常是 Flask-SQLAlchemy),而且加上 celery +redis 等異步特性以後,Flask 的性能相對 Tornado 也不逞多讓,也許Flask 的靈活性可能是某些團隊更需要的。

 

二、選擇框架的建議

 

這麼多的Web框架,我們沒有那麼多的精力全都學一遍,也不可能全部精通,必然要有所取捨,那麼該如何選擇呢?有哪些可以參考的原則呢?

 

下面的建議不一定正確,但可以作爲參考:

 

選擇更主流的框架。因爲它們的文檔更齊全,技術積累更多,社區更繁盛,能得到更好的幫助和支持。

 

選擇更活躍的框架。關注項目在GitHub等環境中的更新頻率、Issue和Pull Request的響應情況。如果一個項目長期沒有更新,或者有一堆的問題需要解決但是沒有得到響應,就不應該是你學習的對象。

 

選擇能夠滿足需求的框架。沒有最好的框架,只有更合適的框架。你所選擇的Web框架不僅需要滿足當前的需求,還要充分考慮項目發展一段時間後的情況,即前瞻性,避免盲目選擇而導致將來推倒重來的情況。

 

選擇時效性好的框架。在學習和使用框架的時候經常需要查閱和參考各種網絡上的文章、博客和教程,但是需要注意他們的發表時間。有些框架的相關文章已經很老了,很久沒更新了,應該放棄這種框架;有的框架一直以來都有不斷的新文章、新博客出現,就是比較不錯的選擇。

 

選擇入門友好的框架。這條只對新手適用。詳細的框架文檔、官方教程對新手來說都是極大的幫助和鼓勵。

 

三、爲什麼推薦Django框架?

 

Django具有以下特點:

 

功能完善、要素齊全:該有的、可以沒有的都有,自帶大量常用工具和框架,無須你自定義、組合、增刪及修改。

 

完善的文檔:經過十多年的發展和完善,Django有廣泛的實踐案例和完善的在線文檔。開發者遇到問題時可以搜索在線文檔尋求解決方案。

 

強大的數據庫訪問組件:Django的Model層自帶數據庫ORM組件,使得開發者無須學習其他數據庫訪問技術(SQL、pymysql、SQLALchemy等)。

 

靈活的URL映射:Django使用正則表達式管理URL映射,靈活性高。新版的2.0,進一步提高了URL編寫的優雅性。

 

豐富的Template模板語言:類似jinjia模板語言,不但原生功能豐富,還可以自定義模板標籤,並且與其ORM的用法非常相似。

 

自帶後臺管理系統admin:只需要通過簡單的幾行配置和代碼就可以實現一個完整的後臺數據管理控制平臺。

 

完整的錯誤信息提示:在開發調試過程中如果出現運行錯誤或者異常,Django可以提供非常完整的錯誤信息幫助定位問題。

 

那麼,我們根據前面的選擇原則我們來逐條對比一下:

 

1.主流、活躍程度:

從Github的數據來看,Django的開發非常活躍,迭代速度也非常快。

 

2.是否可以滿足需求:

Django以要素齊全、工具豐富、框架龐大著稱,基本上別的框架有的它有,別的框架沒有的它也有,如果Django滿足不了需求,那麼別的框架同樣也一樣。

 

3.時效性:

Django有很長的開發和實踐過程,或早或晚的文檔、教程、幫助、博客等等非常多,資料更新速度也很快,比如博主個人網站的Django教程,大家沒事可以逛逛。

 

4.入門友好程度:

一個框架能否流行起來,對新手入門是否友好非常關鍵。Django在這一點做的非常好。

 

- END -

 

想要一試身手?

以一個垃圾分類論壇網站爲例,

帶領大家快速入門Django框架。

 

【Django搭建垃圾分類論壇】

完整視頻:http://yun.itheima.com/open/443.html?2005stt
配套資料:https://pan.baidu.com/s/1s5YGiVFbUnJDWw3sUq8OJA 提取碼:35k4 

主講內容:

1.Django框架的MVT流程。

2.Django的視圖。

3.Django的MRO模型。

4.Django的模板渲染。

5.Django的後臺管理功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章