国产午夜男女在线|欧美日本一道高清国产|亚洲日韩乱码中文字幕|麻豆国产97在线精品一区|日韩一区2区三区另类图片|亚洲精品国产99在线观看|亚洲国产午夜福利精品大秀在线|一级做a爰片性色毛片免费网站

您當(dāng)前的位置 :寧夏資訊網(wǎng) > 資訊 >  內(nèi)容正文
投稿

目前最受歡迎的12個(gè)Python web框架,你用過幾個(gè)?

寧夏資訊網(wǎng) 2020-09-14 06:37:45 來源: 閱讀:-

Python作為膠水語言,隨AI時(shí)代來臨備受追捧。其發(fā)展方向有很多的,比如:爬蟲、數(shù)據(jù)分析、自動(dòng)化測(cè)試、人工智能、運(yùn)維還有web開發(fā)等。

Python程序員有很多很好的選擇來創(chuàng)建Web應(yīng)用程序和API;Django,Weppy,Bottle和Flask引領(lǐng)潮流。

如果正在開發(fā)一個(gè)Web應(yīng)用程序并且已經(jīng)選擇使用Python作為構(gòu)建它的語言,那么這是一個(gè)明智的選擇。Python的開發(fā)成熟度,強(qiáng)大的庫以及廣泛的實(shí)際應(yīng)用使其成為Web開發(fā)的必需。

目前最受歡迎的12個(gè)Python web框架,你用過幾個(gè)?

其實(shí),Python開發(fā)web在國內(nèi)可能沒那么盛行,但在國外卻發(fā)展迅猛。國內(nèi)有些知名網(wǎng)站,像知乎、網(wǎng)易、豆瓣都是用Python開發(fā)的;國外有Quora(社交問答網(wǎng)站)、Google、Pinterest(圖片社交分享網(wǎng)站)。

所以,今天分享一下比較出名的12個(gè)Python web框架。

1.Django

Django是一個(gè)開源的Web應(yīng)用框架,由Python寫成,支持許多數(shù)據(jù)庫引擎,可以讓W(xué)eb開發(fā)變得迅速和可擴(kuò)展,并會(huì)不斷的版本更新以匹配Python最新版本,如果是新手程序員,可以從這個(gè)框架入手。

目前最受歡迎的12個(gè)Python web框架,你用過幾個(gè)?

Django為人所稱道的地方主要有:

1、 完美的文檔,Django的成功,很大一部分原因要?dú)w功于Django近乎完美的官方文檔

2、全套的解決方案,Django提供全套的解決方案,基本要什么有什么,而且全部Django自己造,開發(fā)網(wǎng)站應(yīng)手的工具Django基本都給你做好了,因此開發(fā)效率是不用說的,出了問題也算好找,不在你的代碼里就在Django的源碼里。

3、強(qiáng)大的URL路由配置,Django讓你可以設(shè)計(jì)出非常優(yōu)雅的URL,在Django里你基本可以跟丑陋的GET參數(shù)說拜拜。

4、自助管理后臺(tái),admin interface是Django里比較吸引眼球的一項(xiàng)contrib,讓你幾乎不用寫一行代碼就擁有一個(gè)完整的后臺(tái)管理界面。

5、系統(tǒng)緊耦合,如果你覺得Django內(nèi)置的某項(xiàng)功能不是很好,想用喜歡的第三方庫來代替是很難的,比如下面將要說的ORM、Template。要在Django里用SQLAlchemy或Mako幾乎是不可能,即使打了一些補(bǔ)丁用上了也會(huì)讓你覺得非常非常別扭。

6、Template功能比較弱,不能插入Python代碼,要寫復(fù)雜一點(diǎn)的邏輯需要另外用Python實(shí)現(xiàn)Tag或Filter。

Django是走大而全的方向,注重的是高效開發(fā),它最出名的是其全自動(dòng)化的管理后臺(tái):只需要使用起ORM,做簡單的對(duì)象定義,它就能自動(dòng)生成數(shù)據(jù)庫結(jié)構(gòu)、以及全功能的管理后臺(tái)。

2.CubicWeb

CubicWeb被稱為"一個(gè)支持重用和面向?qū)ο笤O(shè)計(jì)的語義Web應(yīng)用程序框架。"這是一個(gè)有趣的系統(tǒng),強(qiáng)調(diào)使用抽象和可重用的代碼塊稱為"多維數(shù)據(jù)集",但對(duì)于某些開發(fā)人員來說可能過于抽象或特殊。

多維數(shù)據(jù)集是具有模式(數(shù)據(jù)模型),實(shí)體(編程邏輯)和視圖的軟件組件。通過組合多個(gè)立方體,每個(gè)立方體執(zhí)行自己的任務(wù),可以通過重用自己的代碼和其他代碼來編寫軟件應(yīng)用程序。

3.Web2py

Web2py是一個(gè)用Python語言編寫的免費(fèi)的開源Web框架,旨在敏捷快速的開發(fā)Web應(yīng)用,具有快速、可擴(kuò)展、安全以及可移植的數(shù)據(jù)庫驅(qū)動(dòng)的應(yīng)用,遵循LGPLv3開源協(xié)議。

Web2py提供一站式的解決方案,整個(gè)開發(fā)過程都可以在瀏覽器上進(jìn)行,提供了Web版的在線開發(fā),HTML模板編寫,靜態(tài)文件的上傳,數(shù)據(jù)庫的編寫的功能。其它的還有日志功能,以及一個(gè)自動(dòng)化的admin接口。

目前最受歡迎的12個(gè)Python web框架,你用過幾個(gè)?

4.Weppy

Weppy感覺就像Flask的簡約風(fēng)格和Django的完整性之間的中間標(biāo)記。雖然開發(fā)Weppy應(yīng)用程序具有Flash的直接性,但Weppy具有Django中的許多功能,如數(shù)據(jù)層和身份驗(yàn)證。因此,Weppy適用于從極其簡單到適度復(fù)雜的應(yīng)用程序。

5.Zope2

Zope不適用于簡單的RESTful API(每Bottle或Flask),甚至不適用于具有交互性的基本網(wǎng)站(à la Django)。相反,它意味著是一個(gè)完整的企業(yè)級(jí)應(yīng)用程序服務(wù)器堆棧,類似于Java產(chǎn)品。該文檔將該框架描述為"對(duì)組件開發(fā)人員,整合者和Web設(shè)計(jì)人員最有用。"一個(gè)主要的第三方產(chǎn)品Plone CMS使用Zope作為其基礎(chǔ),并作為Zope持續(xù)開發(fā)的主要驅(qū)動(dòng)力。

6.Bottle

Bottle是一個(gè)簡單高效的遵循WSGI的微型python Web框架。說微型,是因?yàn)樗挥幸粋€(gè)文件,除Python標(biāo)準(zhǔn)庫外,它不依賴于任何第三方模塊。

Bottle可以被認(rèn)為是一種迷你燒瓶,因?yàn)樗绕渌?微框架"更加緊湊和簡潔。由于其占地面積最小,Bottle非常適合包含在其他項(xiàng)目中或快速交付REST API等小型項(xiàng)目。

7.CherryPy

CherryPy是一種用于Python的、簡單而非常有用的Web框架,其主要作用是以盡可能少的操作將Web服務(wù)器與Python代碼連接,其功能包括內(nèi)置的分析功能、靈活的插件系統(tǒng)以及一次運(yùn)行多個(gè)HTTP服務(wù)器的功能,可與運(yùn)行在最新版本的Python、Jython、Android上。

8.Falcon

如果正在構(gòu)建基于REST的API而不是其他任何東西,那么Falcon提供的絕對(duì)必要。它的設(shè)計(jì)精簡而快速,幾乎沒有標(biāo)準(zhǔn)庫之外的依賴關(guān)系。

Falcon獲得"輕薄"標(biāo)簽的原因很大一部分與框架中的代碼行數(shù)無關(guān)。這是因?yàn)镕alcon在應(yīng)用程序上幾乎沒有任何結(jié)構(gòu)。

Falcon還采用了理智的開箱即用默認(rèn)設(shè)置,因此安裝時(shí)幾乎不需要修改。

Falcon對(duì)API的關(guān)注意味著用傳統(tǒng)的HTML用戶界面構(gòu)建Web應(yīng)用程序幾乎沒有。

Falcon的文檔與其他框架相比比較細(xì)長,但僅僅因?yàn)樗母采w范圍較小。用戶指南包括所有主要功能的正式逐步演練,以及一個(gè)快速入門部分,可讓您查看帶或不帶注釋的示例代碼。

9.Flask

Flask是一個(gè)輕量級(jí)的Web應(yīng)用框架, 使用Python編寫?;?WerkzeugWSGI工具箱和Jinja2模板引擎,使用 BSD 授權(quán)。

Flask也被稱為 "microframework" ,因?yàn)樗褂煤唵蔚暮诵?,?extension 增加其他功能。Flask沒有默認(rèn)使用的數(shù)據(jù)庫、窗體驗(yàn)證工具。然而,F(xiàn)lask保留了擴(kuò)增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗(yàn)證工具、文件上傳、各種開放式身份驗(yàn)證技術(shù)。

Flask 很輕,花很少的成本就能夠開發(fā)一個(gè)簡單的網(wǎng)站。非常適合初學(xué)者學(xué)習(xí)。Flask 框架學(xué)會(huì)以后,可以考慮學(xué)習(xí)插件的使用。例如使用 WTForm + Flask-WTForm 來驗(yàn)證表單數(shù)據(jù),用 SQLAlchemy + Flask-SQLAlchemy 來對(duì)你的數(shù)據(jù)庫進(jìn)行控制。

Flask是輕量級(jí)的,但是擴(kuò)展性非常良好(Github 上 37000 多個(gè) star 就知道群眾的選擇不無道理),可以讓我們?cè)陂_發(fā)的時(shí)候 定制專屬的功能。

10.Pyramid

Pyramid是一款非常通用的開源web框架。作為一個(gè)框架,它的首要任務(wù)是讓開發(fā)者創(chuàng)建web應(yīng)用變得簡單。web應(yīng)用的類型并不重要,可以是一個(gè)電子表單、一個(gè)企業(yè)內(nèi)部網(wǎng)或者是一個(gè)社交平臺(tái)。Pyramid非常通用,可以在各種各樣的情況下使用它。

小而輕,Pyramid比Django更接近Flask甚至Falcon。因此,它非常適合于將現(xiàn)有Python代碼公開為REST API,或者為開發(fā)人員完成大部分繁重任務(wù)的Web項(xiàng)目提供核心的任務(wù)。

Pyramid支持Python 2和Python 3,但不使用Python 3的異步語法。

11.Tornado

Tornado是使用Python編寫的一個(gè)強(qiáng)大的、可擴(kuò)展的Web服務(wù)器。它在處理嚴(yán)峻的網(wǎng)絡(luò)流量時(shí)表現(xiàn)得足夠強(qiáng)健,但卻在創(chuàng)建和編寫時(shí)有著足夠的輕量級(jí),并能夠被用在大量的應(yīng)用和工具中。

Tornado的特點(diǎn):

作為Web框架,是一個(gè)輕量級(jí)的Web框架,類似于另一個(gè)Python web框架Web.py,其擁有異步非阻塞IO的處理方式。

作為Web服務(wù)器,Tornado有較為出色的抗負(fù)載能力,官方用nginx反向代理的方式部署Tornado和其它Python web應(yīng)用框架進(jìn)行對(duì)比,結(jié)果最大瀏覽量超過第二名近40%。

Tornado走的是少而精的方向,注重的是性能優(yōu)越,它最出名的是異步非阻塞的設(shè)計(jì)方式。

目前最受歡迎的12個(gè)Python web框架,你用過幾個(gè)?

12.Wheezy.web

Wheezy.web是Web框架的Flask/Bottle/Pyramid模型:小巧輕便,專注于提供高速和高并發(fā)性。這個(gè)功能集的核心是小的,但它的創(chuàng)建者已經(jīng)為它配備了各種必備功能。

Wheezy的開發(fā)似乎已經(jīng)停滯不前,因?yàn)樵擁?xiàng)目的最后一次提交都記錄在2015年。這對(duì)于保持與新Python功能的兼容性并不是好兆頭。

總結(jié):

上述我們分析了12個(gè)框架。其中五個(gè):Django,CubicWeb,Web2py,Weppy和Zope2,采用"控件"方法,包含你可以想象的Web應(yīng)用程序所需的大多數(shù)功能。其余七個(gè)框架:Bottle,CherryPy,F(xiàn)alcon,F(xiàn)lask,Pyramid,Tornado,和Wheezy.web,提供更簡約的外觀,交易批量和完整性,簡單易用。

關(guān)于框架選擇的誤區(qū):

在框架的選擇問題上,許多人很容易就陷入了下面兩個(gè)誤區(qū)中而不自知:哪個(gè)框架最好?世上沒有最好的框架,只有最適合你自己、最適合你的團(tuán)隊(duì)的框架。編程語言選擇也是一個(gè)道理,你的團(tuán)隊(duì)Python最熟就用Python好了,如果最熟悉的是Ruby那就用Ruby好了,編程語言、框架都只是工具,能多、快、好、省的干完活就是好東西。

過分關(guān)注性能——其實(shí)大部分人是沒必要太關(guān)心框架的性能的,因?yàn)槟汩_發(fā)的網(wǎng)站根本就是個(gè)小站,能上1萬的IP的網(wǎng)站已經(jīng)不多了,上10萬的更是很少很少。在沒有一定的訪問量前談性能其實(shí)是沒有多大意義的,因?yàn)槟愕腃PU和內(nèi)存一直就閑著呢。

(正文已結(jié)束)

推薦閱讀:陜西信息網(wǎng)

免責(zé)聲明及提醒:此文內(nèi)容為本網(wǎng)所轉(zhuǎn)載企業(yè)宣傳資訊,該相關(guān)信息僅為宣傳及傳遞更多信息之目的,不代表本網(wǎng)站觀點(diǎn),文章真實(shí)性請(qǐng)瀏覽者慎重核實(shí)!任何投資加盟均有風(fēng)險(xiǎn),提醒廣大民眾投資需謹(jǐn)慎!

網(wǎng)站簡介 - 聯(lián)系我們 - 營銷服務(wù) - XML地圖 - 版權(quán)聲明 - 網(wǎng)站地圖TXT
Copyright.2002-2019 寧夏資訊網(wǎng) 版權(quán)所有 本網(wǎng)拒絕一切非法行為 歡迎監(jiān)督舉報(bào) 如有錯(cuò)誤信息 歡迎糾正