2020AV天堂网,午夜色色视频,美女黄片免费观看,欧美黄色电影网站,亚洲人在线

其他新聞

其他新聞

類似建站助手的簡單介紹

時間:2023-11-07 信途科技其他新聞

我們知道Web開發(fā)最重要的是選擇合適的框架,一個好的框架可以極大的提高我們開發(fā)的效率,也能幫助我們的應(yīng)用能按照需求快速迭代。Web框架的數(shù)量和質(zhì)量是一個語言是否成熟的標(biāo)志之一。PHP下有Larvarel、CodeIgniter,Yii、TP等著名框架使得PHP成為最流行的Web語言之一。Ruby借助其強(qiáng)大框架Rails以RoR(Ruby on Rails)生態(tài)開辟了一番天地,很多RoR應(yīng)用以強(qiáng)大的功能和敏捷能力而聞名,比如知名Git服務(wù)器系統(tǒng)Gitlab。那么時下最流行的語言Python Web框架的情況怎么樣呢?今天蟲蟲就來給大家介紹這個。

概述

Python和PHP一樣,也有著大量的Web框架,其Web框架生態(tài)圈非常廣泛和多樣化。在進(jìn)入具體主題之前,我們先介紹下Web框架。

Web框架是對常見通用功能的打包,比如Web權(quán)限認(rèn)證模塊、導(dǎo)航路由模塊、HTTP解析模塊、ORM模塊以及做擴(kuò)展使用的插件體系等,打包這些功能可以讓開發(fā)人員輕松地創(chuàng)建Web應(yīng)用程序。是一種高層次的代碼和應(yīng)用邏輯重用方法,可以極大的它減少了開發(fā)人員花在編寫代碼上的時間從而提高開發(fā)效率。通過提供現(xiàn)成的解決方案,Web應(yīng)用程序框架可以幫助開發(fā)人員短時間內(nèi)完成應(yīng)用的開發(fā)并持續(xù)的迭代。

Django

說到Python的Web框架,無疑最想到的必然是Django。Django和Laravel最初都是借鑒了RoR的強(qiáng)大思想(動態(tài)、DDD、約定優(yōu)于配置、低重復(fù)、及時反饋)。Django框架使用了類MVC的MVT(模型、視圖、模板)模式,用Django ORM和數(shù)據(jù)庫聯(lián)系。

Django ORM內(nèi)置的管理面板,可以輕松實(shí)現(xiàn)數(shù)據(jù)庫內(nèi)容的管理。使用很少的配置就可能,自動生成數(shù)據(jù)庫模型。

視圖可以包括函數(shù)和類,視圖的URL路由分配在urls.py文件中完成,可以設(shè)計出完美優(yōu)雅的URL調(diào)度。

Django的模板的系統(tǒng)則相當(dāng)簡單,甚至不支持直接嵌入代碼,需要預(yù)先生成Tag、Filter才能調(diào)用。

Django支持強(qiáng)大的解決方案:

全棧模式,內(nèi)置了大量所有必須的模塊cache、session、feed、orm、geo、auth。

同時也支持"內(nèi)置電池"(batteries included)模式。

Django是典型的"大而全"的邏輯,這可以極大的方便大多數(shù)開發(fā)者。但是這就導(dǎo)致其靈活性不足。要引入其他更好的第三方優(yōu)秀組件就基本上很難,比如想要在Django里用SQLAlchemy或Mako,需要打上很多補(bǔ)丁,而且會導(dǎo)致管理面板,授權(quán),會話處理或生成表單等功能都不能使用。

當(dāng)然Django最人性化的地方是其強(qiáng)大的社區(qū)支持和詳細(xì)文檔完美的文檔Django 書。文檔在安裝后就完全嵌入系統(tǒng)的各個部分,使用非常方便,這使得其開發(fā)的入門門檻很低。

最后給一個Django網(wǎng)站模型的示例:

Pyramid

Pyramid也是一個常用的熱門Python Web框架,它源于Pylons和repoze.bfg模塊,在吸取精華的基礎(chǔ)上使得Pyramid快速成長為了一個成熟和穩(wěn)定的框架。

雖然兩者出現(xiàn)的時間差不多(2005),Pyramid和Django的設(shè)計思想則大相徑庭。Pyramid非常靈活,很容易定制,可以非常自我的方式以創(chuàng)建特征。Pyramid不會強(qiáng)迫使用框架的習(xí)語,對于復(fù)雜或高度非標(biāo)準(zhǔn)的項(xiàng)目來說,這點(diǎn)非常有用。

雖然也內(nèi)置ORM模塊,但是更倡導(dǎo)使用成熟的SQLAlchemy ORM。你也可以按照喜好來定制,比如你可能喜歡peewee ORM,使用原始SQL查詢或與NoSQL數(shù)據(jù)庫集成。

Pyramid中所有選項(xiàng)都是開放式的,所以需要動手能力強(qiáng)一點(diǎn),可能最初學(xué)者稍有點(diǎn)門檻。

Pyramid是一個自稱"開始小,完成大,保持完備的框架。"(start small, finish big, stay finished framework.)。所以非常適合有一定經(jīng)驗(yàn)豐富的開發(fā)人員。

Pyramid一個典型的"Hello Chongchong"應(yīng)用示例:

web2py

web2py源于一個教學(xué)范例框架,其最關(guān)心的是是易于開發(fā)和部署。

Web2py框架也源于RoR和Django思想的啟發(fā),奉行約定優(yōu)于配置的想法,web2py中有很多合理的默認(rèn)值,允許開發(fā)人員快速啟動。

Web2py框架自帶了很多模塊,比如內(nèi)置服務(wù)器,生成HTML的幫助器,表單,驗(yàn)證器等等,但是Web2py多數(shù)據(jù)庫引擎的支持很簡單。其他更多內(nèi)置的功能有:

jQuery和Ajax建站助手;

調(diào)度程序和cron;

雙因子認(rèn)證助手;

文本消息發(fā)送器;

事件工單系統(tǒng),允許自動將生產(chǎn)環(huán)境中發(fā)生的問題分配給開發(fā)人員。

Web2py也宣稱,提供全棧式解決方案,提供可能需要的一切模塊。

Web2py在線提供了大量文檔:

從零開始逐步指導(dǎo)入門,比如簡要介紹Python語言。以友好的方式展示web2py的各個功能,包括大量代碼示例和屏幕截圖等。

盡管具有一定競爭優(yōu)勢,但web2py的社區(qū)遠(yuǎn)遠(yuǎn)小于Django和Pyramid。其官方郵件列表也不大活躍。另外web2py目前還不能和Python 3不兼容。

web2py一個典型的廣告模型示例:

微框架

與大而全思想相反的設(shè)計思想是,小而精致的設(shè)計,這就是微框架。微框架的好處就是沒有冗余,因而性能都很好。

Flask

Flask是除了Django外最流行的Python Web框架。Flask是一個微框架,具備了基本功能,也支持輕松的擴(kuò)展。因此,F(xiàn)lask更適合做為膠水來用,來粘合各個Web庫。

純 Flask不支持任何存儲,但是可以Flask-SQLAlchemy,F(xiàn)lask-MongoAlchemy和Flask-Redis等。類似的基本模板系統(tǒng)是Jinja2,可以使用Mako替換。

Flask框架的座右銘是輕量,"一次一滴"(one drop at a time),這也在其文檔中得到全面反映。關(guān)于如何構(gòu)建Flash應(yīng)用程序可以通過點(diǎn)點(diǎn)滴滴方式學(xué)習(xí)。閱讀幾段文檔后,就能適應(yīng)其開發(fā)任務(wù)了。

在Flash中你不需要一次就學(xué)習(xí)很多東西,尤其高級的功能,知道你真正需要的時候再學(xué)不遲,這樣可以避免無實(shí)踐的"尷學(xué)"。

Flask的最大問題是,沒有大量Flask擴(kuò)展支持和功能打包。常常遇到擴(kuò)展插件停更或者文檔過時的情況,需要花費(fèi)大量的精力處理這些情況。

Flask一個簡單示例如下:

Falcon

Falcon 獵鷹也是一個比較流行的微框架。其目標(biāo)是創(chuàng)建一個簡潔、輕量地Web應(yīng)用程序基礎(chǔ)。官方宣稱Falcon是一個裸殼(bare-metal),無限膨脹(bloat-free)的工具集,用于快速的構(gòu)建后端代碼和微服務(wù)。Falcon兼容Python 2和3,不用擔(dān)心Python的版本問題。

Falcon的一大優(yōu)勢在于其性能非常高,非常快。其官方網(wǎng)站基準(zhǔn)測試顯示,其比Django或Flask等具有很高的性能優(yōu)勢(27~75倍)。

Falcon缺點(diǎn)是其打包模塊有點(diǎn)太少,有路由,中間件,鉤子,除此之外就不提供其他功能了(裸殼)。額外其他功能,比如驗(yàn)證等都需要開發(fā)人員來開發(fā)擴(kuò)展。因?yàn)槠湓O(shè)計中就假設(shè)用于構(gòu)建REST API。

當(dāng)然其高性能的高度定制的特點(diǎn)確實(shí)是一個很好的賣點(diǎn)。畢竟有時候"最簡單的解決方案就是最好的方案"。

Falcon示例程序:

API Star

API Star是一個新的Web微框架,只支持Python 3,其特性使用了Python 3.5中引入的類型提示。API Star使用內(nèi)置的類型提示實(shí)現(xiàn)以簡潔、聲明式的構(gòu)建驗(yàn)證模式表示,然后綁定這些模式來請求處理函數(shù)。

API Star還具有兼容OpenAPI 3 的自動API生成文檔功能。

API Star另一個突出的特性是依賴注入機(jī)制。這是一個更強(qiáng)大、更智能中間件的替代品。比如可以編寫一個所謂的Component,它將使用當(dāng)前經(jīng)過身份驗(yàn)證來提供給用戶視圖。在視圖級別,只需要明確聲明它將需要User實(shí)例,其他事情API Star就會在幕后自動完成。

自動依賴注入優(yōu)于常規(guī)中間件的優(yōu)點(diǎn)是組件不會有其他未使用視圖的開銷。同樣

API Star也可以以更傳統(tǒng),同步性的,兼容WSGI的方式在asyncio上運(yùn)行。

最后與API Star捆綁在一起的其他模塊都非常標(biāo)準(zhǔn):比如使用jinja2,路由和事件掛鉤進(jìn)行模板化擴(kuò)展支持。

總之API Star初生牛犢,發(fā)展可觀。截止當(dāng)前其GitHub存儲庫中有超過5271的星星。貢獻(xiàn)者已經(jīng)接近一百。PR的合并也非??欤且粋€快速增長和協(xié)作的新興框架。

基于異步和asyncio的框架

Python web網(wǎng)站通常很慢,為了提高性能,異步技術(shù)就成了靈丹妙藥。Python也有很多這類的框架。

Twisted

Twisted是Python中最古老,最成熟的Python異步框架。Twisted最初產(chǎn)生于2002年,其核心是一個名為reactor的事件驅(qū)動網(wǎng)絡(luò)引擎,用于調(diào)度和調(diào)用用戶定義的回調(diào)。開始的時候開發(fā)人員必須通過定義函數(shù)并在操作成功和失敗時分別傳遞它們來使用顯式回調(diào)。

后來Twisted引入了inlineCallbacks ,用于編寫異步代碼程序,這些代碼與常規(guī)同步代碼一樣簡單易讀。這個解決方案非常適合Python的語法,并且極大地影響了標(biāo)準(zhǔn)庫asyncio中的現(xiàn)代異步工具包。

Twisted框架的最大優(yōu)點(diǎn)是雖然本身只是一個捆綁很少的引擎,但支持許多其他擴(kuò)展可用于擴(kuò)展其功能,比如從低級網(wǎng)絡(luò)編程(TCP/UDP)和高級應(yīng)用程序(HTTP,IMAP,SHH等)。所以,Twisted天然適合編寫專業(yè)服務(wù),但不適合常規(guī)Web應(yīng)用程序。開發(fā)人員必須自己編寫很多東西才能實(shí)現(xiàn)Django中自帶那些功能。Twisted目前開發(fā)和維護(hù)還很活躍,正在努力遷移代碼到Python 3,其核心功能不久前被重寫,但許多第三方模塊還存在兼容性問題。

Twisted inlineCallbacks代碼示例:

Sanic

Sanic是基于asyncio-Python的異步編程工具箱,與Python 3.4版本的標(biāo)準(zhǔn)庫捆綁在一起。Sanic的開發(fā)基于Sanic需要掌握asyncio思想,涉及協(xié)程的理論知識,并發(fā)編程以及關(guān)于應(yīng)用程序中數(shù)據(jù)流的推理。Sanic在處理長連接時特別有用,比如websocket,如果需要支持websockets或進(jìn)行大量持久的外部API調(diào)用,Sanic是個非常不錯的選擇。

Sanic的另一個用例是編寫 "glue-web App",它可以作為兩個具有不兼容API的子系統(tǒng)之間的代理。

Sanic框架非常快。其中一個依賴項(xiàng)是Uvloop,它用來替換asyncio的內(nèi)置事件循環(huán)的替代品。 Uvloop是libuv的包裝器,與Node.js相同的引擎。根據(jù)uvloop官方文檔,可以讓 asyncio的效率提高了2-4倍。

就功能方面Sanic模仿Flask,比如通過共享Blueprints的概念,微小的子應(yīng)用程序,允許開發(fā)人員在更大的應(yīng)用程序中拆分和組織其代碼。對于光光是數(shù)據(jù)增刪改查CRUD應(yīng)用,Sanic也不是一個好的選擇。

Sanic的一個示例:

Japronto

在高性能編程領(lǐng)域,有著名的C10K甚至C10M問題,Python Web應(yīng)用怎么實(shí)現(xiàn)每秒處理100W的請求呢?這就是Python把a(bǔ)syncio添加到標(biāo)準(zhǔn)庫時想要實(shí)現(xiàn)的目標(biāo)。Japronto是一個基于asyncio的微框架。通過使用uvloop和PicoHTTPParser Japronto實(shí)現(xiàn)了每秒處理100萬個請求。 Uvloop上面說了是基于libuv的asyncio后端,而PicoHTTPParser是用C編寫的輕量級HTTP頭解析器。

Japronto框架的所有核心組件也用C實(shí)現(xiàn),還使用各種低層優(yōu)化和技巧來調(diào)整性??能。Japronto主要用于高性能特殊任務(wù),它們無法通過大而冗余的主流框架實(shí)現(xiàn)。

Japronto還為REST API的微服務(wù)開發(fā)提供堅(jiān)實(shí)的基礎(chǔ),開發(fā)人員只需要設(shè)置路由并確定哪些路由應(yīng)使用同步或異步處理程序。

Japronto中"Hello world"應(yīng)用示例:

aiohttp

Aiohttp是另一個基于asyncio的庫,與其說aiohtt是個Web框架,其更像是一個工具箱,補(bǔ)充了與HTTP相關(guān)的異步庫。aiohttp不僅有助于編寫服務(wù)應(yīng)用程序,還有助于客戶端的開發(fā)。兩者都受益于asyncio,最重要的是能夠同時處理數(shù)千個連接。

客戶端開發(fā)方面,當(dāng)需要同時發(fā)出大量請求時,使用異步的的客戶端腳本非常有用。比如寫一個爬蟲抓取網(wǎng)頁。如果沒有asyncio,就要使用線程或多進(jìn)程,這樣更加不好處理,而且需要的資源更大。

除了構(gòu)建獨(dú)立應(yīng)用程序之外,aiohttp的客戶端也可以用于任何需要非阻塞HTTP調(diào)用。也支持Websockets,通過,aiohttp可以輕松地連接到websocket服務(wù)器進(jìn)行消息交換。

在服務(wù)器端aiohttp提供了微框架所能提供的一切,包括路由,中間件和信號機(jī)制等開箱即用的功能。麻雀雖小五臟俱全,aiohttp可以滿足Web服務(wù)器的需求。

Aiohttp是在考慮測試的基礎(chǔ)上構(gòu)建的。想要測試基于aiohttp的應(yīng)用程序的開發(fā)人員會發(fā)現(xiàn)它非常容易,特別是和pytest配合使用的情況下。

aiohttp默認(rèn)就可以提供很好的性能,但還可以自主優(yōu)化,比如配合其他庫使用,比如cchardet和aiodns。Aiohttp可以自動檢測它們;也可以和uvloop配合。

aiohttp的一個明顯優(yōu)勢是有活躍的社區(qū)和積極地開發(fā)維護(hù)團(tuán)隊(duì),所以使用aiohttp作為一個開發(fā)是個很不錯的選擇。

aiohttp客戶端示例:

其他Web開發(fā)框架

市面上還有很多的Python Web框架,可能大家也有自己喜歡和使用的,可以回帖共享給大家。

比如Tornado,它是一個Web server,還是一個類web.py的微框架。該框架包括支持異步的庫,可以構(gòu)建支持多個同時連接的應(yīng)用程序(如長輪詢和WebSocket等)。

比如Quixote,可能國內(nèi)的開發(fā)者都比較熟悉。因?yàn)閲鴥?nèi)知名的互動社區(qū)豆瓣網(wǎng)就是使用Quixote開發(fā)的。

總結(jié)

本文蟲蟲給大家分類列舉了常用的Python Web框架,可供初學(xué)者選擇和使用。有一定經(jīng)驗(yàn)的開發(fā)者也可以作為知識開拓眼界來參考。

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系站長刪除。

轉(zhuǎn)載請注明出處http://m.quickersubmitter.com/xintu/18750.html

標(biāo)簽: 類似建站助手

相關(guān)文章

攜程網(wǎng)絡(luò)營銷問題,為攜程設(shè)計網(wǎng)絡(luò)營銷方案

通過一系列魅力網(wǎng)絡(luò)營銷策劃,制定和實(shí)施營銷活動,更有效的促成個人和組織交易活動實(shí)現(xiàn)的新型營銷模式 攜程精準(zhǔn)狠的市。旅游企業(yè)怎么做好網(wǎng)絡(luò)營銷推廣01營銷能力是旅行社成功的第一步我們雖然做了十多年的旅游行...

「網(wǎng)站關(guān)鍵詞排名就選火1星惠」快速網(wǎng)站關(guān)鍵詞排名

本文目錄一覽: 1、如何利用關(guān)鍵詞提升網(wǎng)站排名 2、優(yōu)化網(wǎng)站關(guān)鍵詞排名 3、怎么優(yōu)化自己網(wǎng)站的關(guān)鍵詞排名? 4、網(wǎng)站關(guān)鍵詞優(yōu)化排名方案有哪些? 5、關(guān)鍵詞排名優(yōu)化 如何利用關(guān)鍵詞提升...

濟(jì)南高端網(wǎng)站建設(shè),人才濟(jì)南網(wǎng)是什么東西

人才濟(jì)南網(wǎng)是什么東西人才濟(jì)南網(wǎng)是濟(jì)南當(dāng)?shù)氐娜瞬耪衅妇W(wǎng)站,提供海量的當(dāng)?shù)貎?yōu)質(zhì)企業(yè)就業(yè)機(jī)會,同時也為企業(yè)提供大量的求職者信息,讓企業(yè)跟求職者之間可以相互選擇,做為企業(yè)人力資源招聘必備去的網(wǎng)站,企業(yè)跟求職者...

為何網(wǎng)絡(luò)營銷要與傳統(tǒng)營銷整合,網(wǎng)絡(luò)營銷與傳統(tǒng)營銷的整合指的是什么

網(wǎng)絡(luò)技術(shù)作為新時期信息技術(shù)發(fā)展的核心,正推動著電子商務(wù)的蓬勃發(fā)展,帶動了企業(yè)運(yùn)作模式的徹底變革如何有效利用互聯(lián)網(wǎng)絡(luò)進(jìn)行交互式營銷,并使之。本文從網(wǎng)絡(luò)營銷與傳統(tǒng)營銷的比較入手得出網(wǎng)絡(luò)營銷和傳統(tǒng)營銷共存的...

網(wǎng)絡(luò)營銷風(fēng)險及評估,網(wǎng)絡(luò)營銷效果評估怎么寫

金融機(jī)構(gòu)應(yīng)當(dāng)與互聯(lián)網(wǎng)平臺簽訂書面合作協(xié)議并持續(xù)跟蹤評估平臺風(fēng)險及履約情況營銷范圍辦法第十七條提出,未經(jīng)金融管理部??s減公司損失和降低企業(yè)運(yùn)營風(fēng)險?1網(wǎng)站為企業(yè)網(wǎng)絡(luò)營銷之根本對于之前很多不重視網(wǎng)絡(luò)營銷的...

產(chǎn)品的關(guān)鍵詞排名靠前(快手搜索關(guān)鍵詞怎么排名靠前)

今日頭條是我們非常熟悉且經(jīng)常使用的資訊類手機(jī)APP產(chǎn)品的關(guān)鍵詞排名靠前,今日頭條擁有龐大的日活躍量和用戶量產(chǎn)品的關(guān)鍵詞排名靠前,目前今日頭條的用戶量已經(jīng)達(dá)到了7億,日活躍量更是達(dá)到2億,用戶每天單日使...

現(xiàn)在,非常期待與您的又一次邂逅

我們努力讓每一次邂逅總能超越期待

  • 效果付費(fèi)
    效果付費(fèi)

    先出效果再付費(fèi)

  • 極速交付
    極速交付

    響應(yīng)速度快,有效節(jié)省客戶時間

  • 1對1服務(wù)
    1對1服務(wù)

    專屬客服對接咨詢

  • 持續(xù)更新
    持續(xù)更新

    不斷升級維護(hù),更好服務(wù)用戶