溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

為什么越來越多的人選擇Django

發(fā)布時間:2020-08-25 11:13:17 來源:億速云 閱讀:231 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)為什么越來越多的人選擇Django,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

Web開發(fā)是Python語言應用領(lǐng)域的重要部分,也是工作崗位比較多的領(lǐng)域。如果你對基于Python的Web開發(fā)有興趣,正打算開始學習使用Python做Web開發(fā),或者已經(jīng)是一個Web開發(fā)者有工作需要,要做Web服務(wù)、自動化運維、數(shù)據(jù)的圖形化展示等,那么學習一門基于Python的Web開發(fā)框架是必修課。

Python作為當前最火爆最熱門,也是最主要的Web開發(fā)語言之一,在其二十多年的歷史中出現(xiàn)了數(shù)十種Web框架,比如Django、Tornado、Flask、Twisted、Bottle和Web.py等,它們有的歷史悠久,有的發(fā)展迅速,還有的已經(jīng)停止維護。

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

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

Django:

為什么越來越多的人選擇Django

發(fā)布于2003年,是當前Python世界里最負盛名且最成熟的Web框架,最初被用來制作在線新聞的Web站點。Django的各模塊之間結(jié)合得比較緊密,所以在功能強大的同時又是一個相對封閉的系統(tǒng)(依然是可以自定義的),但是其健全的在線文檔及開發(fā)社區(qū),使開發(fā)者在遇到問題時能找到解決辦法。

Tornado:

為什么越來越多的人選擇Django

一個強大的、支持協(xié)程、高效并發(fā)且可擴展的Web服務(wù)器,發(fā)布于2009年9月,應用于FriendFeed、Facebook等社交網(wǎng)站。它的強項在于可以利用異步協(xié)程機制實現(xiàn)高并發(fā)的服務(wù)。

Flask:

為什么越來越多的人選擇Django

Python Web框架家族里比較年輕的一個,發(fā)布于2010年,它吸收了其他框架的優(yōu)點并且把自己的主要領(lǐng)域定義在了微小項目上,以短小精干,簡潔明了著稱。

Twisted:

為什么越來越多的人選擇Django

一個有著十多年歷史的開源事件驅(qū)動框架。它不像前三種著眼于Web應用開發(fā),而是適用從傳輸層到自定義應用協(xié)議的所有類型的網(wǎng)絡(luò)程序的開發(fā),并能在不同的操作系統(tǒng)上提供很高的運行效率。但是,目前對Python3的支持有限,建議使用Python2.7。

二、選擇框架的原則

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

下面的原則不一定正確,但可以作為參考:

選擇更主流的框架。因為它們的文檔更齊全,技術(shù)積累更多,社區(qū)更繁盛,能得到更好的幫助和支持。選擇更活躍的框架。關(guān)注項目在GitHub等環(huán)境中的更新頻率、Issue和Pull Request的響應情況。如果一個項目長期沒有更新,或者有一堆的問題需要解決但是沒有得到響應,就不應該是你學習的對象。選擇能夠滿足需求的框架。沒有最好的框架,只有更合適的框架。你所選擇的Web框架不僅需要滿足當前的需求,還要充分考慮項目發(fā)展一段時間后的情況,即前瞻性,避免盲目選擇而導致將來推倒重來的情況。選擇時效性好的框架。在學習和使用框架的時候經(jīng)常需要查閱和參考各種網(wǎng)絡(luò)上的文章、博客和教程,但是需要注意他們的發(fā)表時間。有些框架的相關(guān)文章已經(jīng)很老了,很久沒更新了,應該放棄這種框架;有的框架一直以來都有不斷的新文章、新博客出現(xiàn),就是比較不錯的選擇。選擇入門友好的框架。這條只對新手適用。詳細的框架文檔、官方教程對新手來說都是極大的幫助和鼓勵。

三、為什么選擇Django?

首先介紹一下Django,Django具有以下特點:

功能完善、要素齊全:該有的、可以沒有的都有,自帶大量常用工具和框架,無須你自定義、組合、增刪及修改。完善的文檔:經(jīng)過十多年的發(fā)展和完善,Django有廣泛的實踐案例和完善的在線文檔。開發(fā)者遇到問題時可以搜索在線文檔尋求解決方案。強大的數(shù)據(jù)庫訪問組件:Django的Model層自帶數(shù)據(jù)庫ORM組件,使得開發(fā)者無須學習其他數(shù)據(jù)庫訪問技術(shù)(SQL、pymysql、SQLALchemy等)。靈活的URL映射:Django使用正則表達式管理URL映射,靈活性高。新版的2.0,進一步提高了URL編寫的優(yōu)雅性。豐富的Template模板語言:類似jinjia模板語言,不但原生功能豐富,還可以自定義模板標簽,并且與其ORM的用法非常相似。自帶后臺管理系統(tǒng)admin:只需要通過簡單的幾行配置和代碼就可以實現(xiàn)一個完整的后臺數(shù)據(jù)管理控制平臺。完整的錯誤信息提示:在開發(fā)調(diào)試過程中如果出現(xiàn)運行錯誤或者異常,Django可以提供非常完整的錯誤信息幫助定位問題。

那么,我們根據(jù)前面的選擇原則我們來逐條對比一下:

1.主流、活躍程度:

為什么越來越多的人選擇Django

從Github的數(shù)據(jù)來看,Django的開發(fā)非?;钴S,迭代速度也非???。

2.是否可以滿足需求:

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

3.時效性:

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

4.入門友好程度:

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

四、Django的不足

不能光說優(yōu)點,也說說一些缺點:

框架龐大,被認為不夠精簡、捆綁的內(nèi)容太多

其實我不認同這一條,我真不認為這是個缺點。

首先,對于新手,Django集成好的工具和部件,讓你無須再費腦力去學習如何安裝、調(diào)試、集成、兼容別的工具。Django幫你把它們都集成好了,而且保證兼容性、可用性和方便性,就好比聯(lián)想一體機,開機即用,效率也高。而一些如flask的框架,雖然精簡,但是你要自己安裝各種工具、ORM、插件等等,好比DIY電腦,在用之前,要知道買什么配件,怎么搭配,怎么組裝,怎么配置效率才高,將新手的熱情大量消耗在非關(guān)鍵性的內(nèi)容上。

其次,對于老手,Django也是開放的,你完全可以關(guān)閉不必要的功能,忽略不使用的組件,或者自定義希望的組件,包括ORM和Template在內(nèi),都可以自由選擇。

因此,我認為Django系統(tǒng)龐大、捆綁工具不是問題。

在異步通信方面略有欠缺

從本質(zhì)上來說,Tornado在異步協(xié)程機制實現(xiàn)高并發(fā)的服務(wù)上要更強一點。Django在這方面有追趕的目標,但這不是說Django就差到不能用了,對么?

五、基于Python進行Web開發(fā)的技術(shù)棧

想要熟練地使用Django進行Web開發(fā),設(shè)計生產(chǎn)環(huán)境可用的,能夠應對一定規(guī)模訪問量的Web應用,開發(fā)者要學會的遠遠不止Django本身。Python基礎(chǔ)、環(huán)境搭建、前端語言、API設(shè)計、網(wǎng)站架構(gòu)、系統(tǒng)管理、持續(xù)集成、服務(wù)化、數(shù)據(jù)處理、并發(fā)處理等等,都是相關(guān)的知識領(lǐng)域,包括但不限于以下的內(nèi)容:

熟悉Python語言對前端的HTML\CSS\Javascript比較熟悉對網(wǎng)絡(luò)基礎(chǔ),比如HTTP、TCP/IP等比較熟悉熟悉數(shù)據(jù)庫、緩存、消息隊列等技術(shù)的使用場景和使用方法日常能使用Linux或Mac系統(tǒng)工作(Windows屬于標配)有性能優(yōu)化經(jīng)驗,能快速定位問題

除此之外,還要對業(yè)務(wù)有深刻理解,能夠?qū)懗隹删S護性足夠高的代碼。當然,以上都是對經(jīng)驗豐富的開發(fā)者而言,對于新手剛?cè)腴T者,我們朝著這個目標努力學習就好。

下面是基于Python的Web開發(fā)技術(shù)棧:

為什么越來越多的人選擇Django

看完上述內(nèi)容,你們對為什么越來越多的人選擇Django有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI