您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關目前最受歡迎的12個Python web框架分別是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Python作為膠水語言,隨AI時代來臨備受追捧。其發展方向有很多的,比如:爬蟲、數據分析、自動化測試、人工智能、運維還有web開發等。
Python程序員有很多很好的選擇來創建Web應用程序和API;Django,Weppy,Bottle和Flask引領潮流。
如果正在開發一個Web應用程序并且已經選擇使用Python作為構建它的語言,那么這是一個明智的選擇。Python的開發成熟度,強大的庫以及廣泛的實際應用使其成為Web開發的必需。
其實,Python開發web在國內可能沒那么盛行,但在國外卻發展迅猛。國內有些知名網站,像知乎、網易、豆瓣都是用Python開發的;國外有Quora(社交問答網站)、Google、Pinterest(圖片社交分享網站)。
所以,今天分享一下比較出名的12個Python web框架。
1.Django
Django是一個開源的Web應用框架,由Python寫成,支持許多數據庫引擎,可以讓Web開發變得迅速和可擴展,并會不斷的版本更新以匹配Python最新版本,如果是新手程序員,可以從這個框架入手。
Django為人所稱道的地方主要有:
完美的文檔,Django的成功,很大一部分原因要歸功于Django近乎完美的官方文檔
2、全套的解決方案,Django提供全套的解決方案,基本要什么有什么,而且全部Django自己造,開發網站應手的工具Django基本都給你做好了,因此開發效率是不用說的,出了問題也算好找,不在你的代碼里就在Django的源碼里。
3、強大的URL路由配置,Django讓你可以設計出非常優雅的URL,在Django里你基本可以跟丑陋的GET參數說拜拜。
4、自助管理后臺,admin interface是Django里比較吸引眼球的一項contrib,讓你幾乎不用寫一行代碼就擁有一個完整的后臺管理界面。
5、系統緊耦合,如果你覺得Django內置的某項功能不是很好,想用喜歡的第三方庫來代替是很難的,比如下面將要說的ORM、Template。要在Django里用SQLAlchemy或Mako幾乎是不可能,即使打了一些補丁用上了也會讓你覺得非常非常別扭。
6、Template功能比較弱,不能插入Python代碼,要寫復雜一點的邏輯需要另外用Python實現Tag或Filter。
Django是走大而全的方向,注重的是高效開發,它最出名的是其全自動化的管理后臺:只需要使用起ORM,做簡單的對象定義,它就能自動生成數據庫結構、以及全功能的管理后臺。
2.CubicWeb
CubicWeb被稱為“一個支持重用和面向對象設計的語義Web應用程序框架。”這是一個有趣的系統,強調使用抽象和可重用的代碼塊稱為“多維數據集”,但對于某些開發人員來說可能過于抽象或特殊。
多維數據集是具有模式(數據模型),實體(編程邏輯)和視圖的軟件組件。通過組合多個立方體,每個立方體執行自己的任務,可以通過重用自己的代碼和其他代碼來編寫軟件應用程序。
3.Web2py
Web2py是一個用Python語言編寫的免費的開源Web框架,旨在敏捷快速的開發Web應用,具有快速、可擴展、安全以及可移植的數據庫驅動的應用,遵循LGPLv3開源協議。
Web2py提供一站式的解決方案,整個開發過程都可以在瀏覽器上進行,提供了Web版的在線開發,HTML模版編寫,靜態文件的上傳,數據庫的編寫的功能。其它的還有日志功能,以及一個自動化的admin接口。
4.Weppy
Weppy感覺就像Flask的簡約風格和Django的完整性之間的中間標記。雖然開發Weppy應用程序具有Flash的直接性,但Weppy具有Django中的許多功能,如數據層和身份驗證。因此,Weppy適用于從極其簡單到適度復雜的應用程序。
5.Zope2
Zope不適用于簡單的RESTful API(每Bottle或Flask),甚至不適用于具有交互性的基本網站(à la Django)。相反,它意味著是一個完整的企業級應用程序服務器堆棧,類似于Java產品。該文檔將該框架描述為“對組件開發人員,整合者和Web設計人員最有用。”一個主要的第三方產品Plone CMS使用Zope作為其基礎,并作為Zope持續開發的主要驅動力。
6.Bottle
Bottle是一個簡單高效的遵循WSGI的微型python Web框架。說微型,是因為它只有一個文件,除Python標準庫外,它不依賴于任何第三方模塊。
Bottle可以被認為是一種迷你燒瓶,因為它比其他“微框架”更加緊湊和簡潔。由于其占地面積最小,Bottle非常適合包含在其他項目中或快速交付REST API等小型項目。
7.CherryPy
CherryPy是一種用于Python的、簡單而非常有用的Web框架,其主要作用是以盡可能少的操作將Web服務器與Python代碼連接,其功能包括內置的分析功能、靈活的插件系統以及一次運行多個HTTP服務器的功能,可與運行在最新版本的Python、Jython、Android上。
8.Falcon
如果正在構建基于REST的API而不是其他任何東西,那么Falcon提供的絕對必要。它的設計精簡而快速,幾乎沒有標準庫之外的依賴關系。
Falcon獲得“輕薄”標簽的原因很大一部分與框架中的代碼行數無關。這是因為Falcon在應用程序上幾乎沒有任何結構。
Falcon還采用了理智的開箱即用默認設置,因此安裝時幾乎不需要修改。
Falcon對API的關注意味著用傳統的HTML用戶界面構建Web應用程序幾乎沒有。
Falcon的文檔與其他框架相比比較細長,但僅僅因為它的覆蓋范圍較小。用戶指南包括所有主要功能的正式逐步演練,以及一個快速入門部分,可讓您查看帶或不帶注釋的示例代碼。
9.Flask
Flask是一個輕量級的Web應用框架, 使用Python編寫。基于 WerkzeugWSGI工具箱和Jinja2模板引擎,使用 BSD 授權。
Flask也被稱為 “microframework” ,因為它使用簡單的核心,用 extension 增加其他功能。Flask沒有默認使用的數據庫、窗體驗證工具。然而,Flask保留了擴增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗證工具、文件上傳、各種開放式身份驗證技術。
Flask 很輕,花很少的成本就能夠開發一個簡單的網站。非常適合初學者學習。Flask 框架學會以后,可以考慮學習插件的使用。例如使用 WTForm + Flask-WTForm 來驗證表單數據,用 SQLAlchemy + Flask-SQLAlchemy 來對你的數據庫進行控制。
Flask是輕量級的,但是擴展性非常良好(Github 上 37000 多個 star 就知道群眾的選擇不無道理),可以讓我們在開發的時候 定制專屬的功能。
10.Pyramid
Pyramid是一款非常通用的開源web框架。作為一個框架,它的首要任務是讓開發者創建web應用變得簡單。web應用的類型并不重要,可以是一個電子表單、一個企業內部網或者是一個社交平臺。Pyramid非常通用,可以在各種各樣的情況下使用它。
小而輕,Pyramid比Django更接近Flask甚至Falcon。因此,它非常適合于將現有Python代碼公開為REST API,或者為開發人員完成大部分繁重任務的Web項目提供核心的任務。
Pyramid支持Python 2和Python 3,但不使用Python 3的異步語法。
11.Tornado
Tornado是使用Python編寫的一個強大的、可擴展的Web服務器。它在處理嚴峻的網絡流量時表現得足夠強健,但卻在創建和編寫時有著足夠的輕量級,并能夠被用在大量的應用和工具中。
Tornado的特點:
作為Web框架,是一個輕量級的Web框架,類似于另一個Python web框架Web.py,其擁有異步非阻塞IO的處理方式。
作為Web服務器,Tornado有較為出色的抗負載能力,官方用nginx反向代理的方式部署Tornado和其它Python web應用框架進行對比,結果最大瀏覽量超過第二名近40%。
Tornado走的是少而精的方向,注重的是性能優越,它最出名的是異步非阻塞的設計方式。
12.Wheezy.web
Wheezy.web是Web框架的Flask/Bottle/Pyramid模型:小巧輕便,專注于提供高速和高并發性。這個功能集的核心是小的,但它的創建者已經為它配備了各種必備功能。
Wheezy的開發似乎已經停滯不前,因為該項目的最后一次提交都記錄在2015年。這對于保持與新Python功能的兼容性并不是好兆頭。
總結:
上述我們分析了12個框架。其中五個:Django,CubicWeb,Web2py,Weppy和Zope2,采用“控件”方法,包含你可以想象的Web應用程序所需的大多數功能。其余七個框架:Bottle,CherryPy,Falcon,Flask,Pyramid,Tornado,和Wheezy.web,提供更簡約的外觀,交易批量和完整性,簡單易用。
關于框架選擇的誤區:
在框架的選擇問題上,許多人很容易就陷入了下面兩個誤區中而不自知:哪個框架最好?世上沒有最好的框架,只有最適合你自己、最適合你的團隊的框架。編程語言選擇也是一個道理,你的團隊Python最熟就用Python好了,如果最熟悉的是Ruby那就用Ruby好了,編程語言、框架都只是工具,能多、快、好、省的干完活就是好東西。
過分關注性能——其實大部分人是沒必要太關心框架的性能的,因為你開發的網站根本就是個小站,能上1萬的IP的網站已經不多了,上10萬的更是很少很少。在沒有一定的訪問量前談性能其實是沒有多大意義的,因為你的CPU和內存一直就閑著呢。
看完上述內容,你們對目前最受歡迎的12個Python web框架分別是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。