您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關為什么越來越多的人選擇Django,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Web開發是Python語言應用領域的重要部分,也是工作崗位比較多的領域。如果你對基于Python的Web開發有興趣,正打算開始學習使用Python做Web開發,或者已經是一個Web開發者有工作需要,要做Web服務、自動化運維、數據的圖形化展示等,那么學習一門基于Python的Web開發框架是必修課。
Python作為當前最火爆最熱門,也是最主要的Web開發語言之一,在其二十多年的歷史中出現了數十種Web框架,比如Django、Tornado、Flask、Twisted、Bottle和Web.py等,它們有的歷史悠久,有的發展迅速,還有的已經停止維護。
一、基于Python的代表性Web框架
下面是一些比較有代表性的框架:
Django:
發布于2003年,是當前Python世界里最負盛名且最成熟的Web框架,最初被用來制作在線新聞的Web站點。Django的各模塊之間結合得比較緊密,所以在功能強大的同時又是一個相對封閉的系統(依然是可以自定義的),但是其健全的在線文檔及開發社區,使開發者在遇到問題時能找到解決辦法。
Tornado:
一個強大的、支持協程、高效并發且可擴展的Web服務器,發布于2009年9月,應用于FriendFeed、Facebook等社交網站。它的強項在于可以利用異步協程機制實現高并發的服務。
Flask:
Python Web框架家族里比較年輕的一個,發布于2010年,它吸收了其他框架的優點并且把自己的主要領域定義在了微小項目上,以短小精干,簡潔明了著稱。
Twisted:
一個有著十多年歷史的開源事件驅動框架。它不像前三種著眼于Web應用開發,而是適用從傳輸層到自定義應用協議的所有類型的網絡程序的開發,并能在不同的操作系統上提供很高的運行效率。但是,目前對Python3的支持有限,建議使用Python2.7。
二、選擇框架的原則
這么多的Web框架,我們沒有那么多的精力全都學一遍,也不可能全部精通,必然要有所取舍,那么該如何選擇呢?有哪些可以參考的原則呢?
下面的原則不一定正確,但可以作為參考:
選擇更主流的框架。因為它們的文檔更齊全,技術積累更多,社區更繁盛,能得到更好的幫助和支持。選擇更活躍的框架。關注項目在GitHub等環境中的更新頻率、Issue和Pull Request的響應情況。如果一個項目長期沒有更新,或者有一堆的問題需要解決但是沒有得到響應,就不應該是你學習的對象。選擇能夠滿足需求的框架。沒有最好的框架,只有更合適的框架。你所選擇的Web框架不僅需要滿足當前的需求,還要充分考慮項目發展一段時間后的情況,即前瞻性,避免盲目選擇而導致將來推倒重來的情況。選擇時效性好的框架。在學習和使用框架的時候經常需要查閱和參考各種網絡上的文章、博客和教程,但是需要注意他們的發表時間。有些框架的相關文章已經很老了,很久沒更新了,應該放棄這種框架;有的框架一直以來都有不斷的新文章、新博客出現,就是比較不錯的選擇。選擇入門友好的框架。這條只對新手適用。詳細的框架文檔、官方教程對新手來說都是極大的幫助和鼓勵。
三、為什么選擇Django?
首先介紹一下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在這一點做的非常好。
四、Django的不足
不能光說優點,也說說一些缺點:
框架龐大,被認為不夠精簡、捆綁的內容太多
其實我不認同這一條,我真不認為這是個缺點。
首先,對于新手,Django集成好的工具和部件,讓你無須再費腦力去學習如何安裝、調試、集成、兼容別的工具。Django幫你把它們都集成好了,而且保證兼容性、可用性和方便性,就好比聯想一體機,開機即用,效率也高。而一些如flask的框架,雖然精簡,但是你要自己安裝各種工具、ORM、插件等等,好比DIY電腦,在用之前,要知道買什么配件,怎么搭配,怎么組裝,怎么配置效率才高,將新手的熱情大量消耗在非關鍵性的內容上。
其次,對于老手,Django也是開放的,你完全可以關閉不必要的功能,忽略不使用的組件,或者自定義希望的組件,包括ORM和Template在內,都可以自由選擇。
因此,我認為Django系統龐大、捆綁工具不是問題。
在異步通信方面略有欠缺
從本質上來說,Tornado在異步協程機制實現高并發的服務上要更強一點。Django在這方面有追趕的目標,但這不是說Django就差到不能用了,對么?
五、基于Python進行Web開發的技術棧
想要熟練地使用Django進行Web開發,設計生產環境可用的,能夠應對一定規模訪問量的Web應用,開發者要學會的遠遠不止Django本身。Python基礎、環境搭建、前端語言、API設計、網站架構、系統管理、持續集成、服務化、數據處理、并發處理等等,都是相關的知識領域,包括但不限于以下的內容:
熟悉Python語言對前端的HTML\CSS\Javascript比較熟悉對網絡基礎,比如HTTP、TCP/IP等比較熟悉熟悉數據庫、緩存、消息隊列等技術的使用場景和使用方法日常能使用Linux或Mac系統工作(Windows屬于標配)有性能優化經驗,能快速定位問題
除此之外,還要對業務有深刻理解,能夠寫出可維護性足夠高的代碼。當然,以上都是對經驗豐富的開發者而言,對于新手剛入門者,我們朝著這個目標努力學習就好。
下面是基于Python的Web開發技術棧:
看完上述內容,你們對為什么越來越多的人選擇Django有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。