人生苦短,快學Python!
整理了 Python 中常見的網站開發庫(下文簡稱:Web 框架),供大家學習參考。
A:Web 框架主要用於網站開發。開發者在基於 Web 框架實現自己的業務邏輯。Web 框架實現了很多功能,為實現業務邏輯提供了一套通用方法。
A:使用 Web 框架,很多的業務邏輯外的功能不需要自己再去完善,而是使用框架已有的功能就可以。Web 框架使得在進行 網站開發的時候,減少了工作量。
A:Web 框架主要用於網站開發,可以實現數據的交互和業務功能的完善。使用 Web 框架進行 網站開發的時候,在進行數據緩存、數據庫訪問、數據安全校驗等方面,不需要自己再重新實現,而是將業務邏輯相關的代碼寫入框架就可以。
庫排序是按照使用人數和文檔的活躍度為參考進行的,建議大家使用排名靠前的框架,因為它們的文檔更齊全,技術積累要更多,社區更繁盛,能得到更好的支持,這樣在遇到自己無法解決的問題,可以更快更高效的找到解答的方案。
官 網:https://github.com/django/django.git
優 點:是一個高層次 Python Web 開發框架,特點是開發快速、代碼較少、可擴展性強。Django 采用 MTV(Model、Template、View)模型組織資源,框架功能豐富,模板擴展選擇最多。對於專業人員來說,Django 是當之無愧的 Python 排名第一的 Web 開發框架。
缺 點:包括一些輕量級應用不需要的功能模塊,不如 Flask 輕便。過度封裝很多類和方法,直接使用比較簡單,但改動起來比較困難。相比於 C,C++ 性能,Djang 性能偏低。模板實現了代碼和樣式完全分離,不允許模板裡出現 Python 代碼,靈活度不夠。另外學習曲線也相對陡峭。
官 網:https://flask.palletsprojects.com/en/2.0.x/
優 點:Flask 是一個 Python Web 開發的微框架,嚴格來說,它僅提供 Web 服務器支持,不提供全棧開發支持。然而,Flask 非常輕量、非常簡單,基於它搭建 Web 系統都以分鐘來計時,特別適合小微原型系統的開發。花少時間、產生可用系統,是非常劃算的選擇。
缺 點:對於大型網站開發,需要設計路由映射的規則,否則導致代碼混亂。對新手來說,容易使用低質量的代碼創建 “不良的 web 應用程序”。
官 網: https://trypyramid.com/
優 點:是一個擴展性很強且靈活的 Python Web 開發框架。上手十分容易,比較適合中等規模且邊開發邊設計的場景。Pyramid 不提供絕對嚴格的框架定義,根據需求可以擴展開發,對高階程序員十分友好。
缺 點:國內知名度不高,高級用法需要通過閱讀源代碼獲取靈感。默認使用 Chameleon 模板,靈活度沒有成為一個要素。
官 網:https://webpy.org/
優 點:正如其名,web.py 是一個采用 Python 作為開發語言的 Web 框架,簡單且強大。俄羅斯排名第一的 Yandex 搜索引擎基於這個框架開發,Guido van Rossum 認為這是最好的 Python Web 框架,還需要說別的嗎?有事實作證、有大牛認可,用起來吧!
缺 點:Web.py 並未像其他框架一樣保持與 Python 3 兼容性的最新狀態。這不僅意味著缺乏對異步語法的支持,還意味著缺少對已棄用的函數的錯誤。此外,目前尚不清楚維護者是否有計劃在 Python 2 到達其支持生命周期結束後保持 Web.py 的最新狀態。
官 網:https://www.tornadoweb.org/en/stable/
優 點:Tornado 是一個基於異步網絡功能庫的 Web 開發框架,因此,它能支持幾萬個開放連接,Web 服務高效穩定。可見,Tornado 適合高並發場景下的 Web 系統,開發過程需要采用 Tornado 提供的框架,靈活性較差,確定場景後再考慮使用不遲。
缺 點:Tornado 5.0 改進了與 Python 的本機異步功能的集成。因此不再支持 Python 3.3,並且 Python 3.5 用戶必須使用 Python 3.5.2 或更高版本。Tornado 6.0 將需要 Python 3.5 及更高版本,並將完全放棄 Python 2 支持。
官 網:https://www.turbogears.org/
優 點:TurboGears 最新版本 試圖解決 TurboGears 最初版本、Django、Rails 等框架缺陷,它支持多數據庫、JavaScript 工具集、多種數據交換格式等,當然,它開發非常高效,擴展性很強。試問它與 Django 哪個更好?還真不好說,Django 社區更為活躍或許更重要。
缺 點:TurboGears 的一些缺點包括管理功能較為基礎,較少的第三方應用程序以及只有初級的文檔。TurboGears 的一個重大挑戰是它的壓倒性。因為它混搭的其他組件都提供無限的靈活性, 當試圖決定何種路徑來完成一個任務時它是過於復雜的。
每個框架都有一定的優缺點,但是也不能排除它是真的好用,用好框架能讓我們寫代碼的速度提升很多,所以想要學好Python也要了解框架的使用,快去學習吧!