99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

安利5個(gè)流暢自如的Python Web框架

如意 ? 來(lái)源:百家號(hào) ? 作者:讀芯術(shù) ? 2020-07-02 17:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

如今,可供選擇的Python web框架有不少,能幫助你更快更輕松地創(chuàng)建web應(yīng)用。本文就將為大家介紹一些更現(xiàn)代、使用更廣泛的web框架。

1.FastAPI

FastAPI致力于實(shí)現(xiàn)輕便和快速,筆者很喜歡它,它的開(kāi)發(fā)速度和簡(jiǎn)單程度令人欣慰。這對(duì)于端點(diǎn)特別有用,因?yàn)樗鼈兂诉壿嬛馔ǔ](méi)有太多內(nèi)容,而且很可能不需要Django或TurboGears等工具提供的所有無(wú)用信息來(lái)創(chuàng)建。

FastAPI也有非常好的文檔,這讓它變得易于學(xué)習(xí)。FastAPI中的“快”代表了開(kāi)發(fā)api所需要的速度和這些api返回的速度。與其他web框架類似,它還基于API創(chuàng)建的開(kāi)放標(biāo)準(zhǔn),你可以在一個(gè)方便的包中獲得傳輸數(shù)據(jù)所需的所有工具。

在語(yǔ)法方面,F(xiàn)astAPI采用一種非常類似于flass的方法來(lái)創(chuàng)建端點(diǎn)。

from fastapi import FastAPI

app = FastAPI()

@app.get(“/”)

async def root():

return {“message”:“Hello World”}

2.Tornado

Tornado不僅是一個(gè)優(yōu)秀的web框架,而且還是一個(gè)異步網(wǎng)絡(luò)庫(kù),這讓Tornado就能夠?yàn)閿?shù)以千計(jì)的開(kāi)放連接服務(wù)。Tornado使用非阻塞網(wǎng)絡(luò)進(jìn)出流,使得它對(duì)于需要龐大且可伸縮的解決方案非常有用。

實(shí)際上,Tornado與大多數(shù)其他Python web框架有很大不同,它不在WSGI上運(yùn)行。雖然這意味著在web服務(wù)器的選擇上可能受到一些限制,但Tornado提供了預(yù)打包服務(wù)器,可以立即啟動(dòng)并運(yùn)行。

雖然筆者很喜歡Tornado,但需要注意的是,當(dāng)筆者嘗試用NGINX部署它時(shí)確實(shí)遇到了很多bug。而且在某些情況下,讓NGINX路由到正確的位置是并不是一件開(kāi)心的事兒。筆者也遇到過(guò)Genie for Julia,不確定是什么原因造成的,但如果使用Tornado,那么最好設(shè)置一個(gè)Apache服務(wù)器,而不是NGINX服務(wù)器。

在語(yǔ)法方面,Tornado采用的是非常類似TurboGears的路由方法。使用Tornado時(shí),通常會(huì)構(gòu)建類來(lái)處理這些路由上的響應(yīng),而不是將邏輯放在路由中,來(lái)看看這個(gè)例子:

import tornado.ioloop

import tornado.web

class MainHandler(tornado.web.RequestHandler):

def get(self):

self.write(“Hello,world”)

def make_app():

returntornado.web.Application([

(r“/”, MainHandler),

])

if __name__ == “__main__”:

app = make_app()

app.listen(8888)

tornado.ioloop.IOLoop.current().start()

3.Quart

不要被Quart的標(biāo)志搞暈了,它與Flash模塊關(guān)系更緊密,而不是Bottle模塊。Quart本質(zhì)上是把兩個(gè)web框架放入一個(gè)模塊的組合:Asyncio和Flask。

這是一件了不起的事情,這兩者的結(jié)合稱得上完美!與Flask一樣,Quart是輕量級(jí)的,但是也包含了一個(gè)完整的異步特性列表。

筆者也很喜歡Quart,它感覺(jué)就像一個(gè)稍微加強(qiáng)了的Flask,在添加更多功能的過(guò)程中不會(huì)降低速度或易用性。有趣的是,Quart文檔實(shí)際上建議你訪問(wèn)Flask文檔,筆者認(rèn)為這正說(shuō)明了它的分叉特性。如果你想要一個(gè)異步Flask,Quart是很好的選擇。

from quart import Quart

app = Quart(__name__)

@app.route(‘/’)

async def hello():

return ‘hello’

app.run()

4.BlackSheep

“BlackSheep”受到了ASP.NET和Flask等優(yōu)秀工具的啟發(fā),可用于輕松創(chuàng)建基于事件的web應(yīng)用程序。筆者真的不明白為什么它被稱為“BlackSheep”,這一框架背后的語(yǔ)法和方法與Flask幾乎相同。

from datetime import datetime

from blacksheep.server import Application

from blacksheep.server.responses import text

app = Application()

@app.route(‘/’)

async def home(request):

return text(f‘Hello, World!{datetime.utcnow().isoformat()}’)

與Quart一樣,Black Sheep也提供了非常棒的工具,用于在web上同步和創(chuàng)建非阻塞端點(diǎn)。整體上來(lái)講,它是一個(gè)非常好用的框架,但與Quart非常相似。所以如果用了一個(gè),你肯定也同時(shí)會(huì)使用這兩個(gè)框架。

5.Pyramid

Pyramid是筆者很喜歡使用的網(wǎng)絡(luò)框架之一。雖然Pyramid堅(jiān)持輕量級(jí)的想法,并提供非常簡(jiǎn)單的方法,以最小的代碼快速建立端點(diǎn),但它同時(shí)也包括所有你可能需要的功能。

Pyramid受贊譽(yù)最多的一點(diǎn)是它的可擴(kuò)展性。Pyramid可以是基礎(chǔ)的,也可以是復(fù)雜的,數(shù)據(jù)科學(xué)家會(huì)很喜歡它,他們可能想在未來(lái)擴(kuò)展他們的端點(diǎn)。在句法上,Pyramid和Tornado大致相同。它始終遵循面向?qū)ο蟮姆妒健?/p>

from wsgiref.simple_server importmake_server

from pyramid.config import Configurator

from pyramid.response import Response

def hello_world(request):

return Response(‘HelloWorld!’)

if __name__ == ‘__main__’:

with Configurator() asconfig:

config.add_route(‘hello’, ‘/’)

config.add_view(hello_world,route_name=‘hello’)

app = config.make_wsgi_app()

server = make_server(‘0.0.0.0’,6543, app)

server.serve_forever()

如今,有一些更現(xiàn)代、使用更廣泛的web框架,能幫助你部署新的端點(diǎn)。它們各有亮點(diǎn),但如果必須選擇的話,筆者可能會(huì)選擇FastAPI。FastAPI簡(jiǎn)單、輕量級(jí),一個(gè)字就是快。

當(dāng)然,這并不是說(shuō)FastAPI在每種情況下都是最好的選擇。最好根據(jù)具體情況來(lái)決定需要的最佳特性是什么然后再選擇,而不是根據(jù)主觀意見(jiàn)。

圖源:unsplash

如果有足夠的存儲(chǔ)空間,所有這些框架都是值得一試。如果想讓體驗(yàn)更上一層樓,下一步就是對(duì)請(qǐng)求響應(yīng)進(jìn)行一些速度測(cè)試,看看誰(shuí)是最佳。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1287

    瀏覽量

    71469
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    404

    瀏覽量

    17903
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86813
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基礎(chǔ)篇3:掌握Python中的條件語(yǔ)句與循環(huán)

    通過(guò)學(xué)習(xí)條件語(yǔ)句和循環(huán),您能夠編寫(xiě)出能夠根據(jù)不同情況和條件作出決策的Python程序。這些結(jié)構(gòu)在編程中非常常見(jiàn),對(duì)于提高編程能力和構(gòu)建復(fù)雜程序至關(guān)重要。在接下來(lái)的學(xué)習(xí)和實(shí)踐中,不斷練習(xí)這些概念,您將能夠更自如地運(yùn)用它們來(lái)解決實(shí)際問(wèn)題。
    發(fā)表于 07-03 16:13

    鴻蒙5開(kāi)發(fā)寶藏案例分享---Web開(kāi)發(fā)優(yōu)化案例分享

    ;gt;ArkWeb</span>(方舟Web)組件加載Web頁(yè)面的優(yōu)化技巧,簡(jiǎn)直是提升應(yīng)用流暢度的神兵利器。官方文檔寫(xiě)得比較“正經(jīng)”,我這就把它掰開(kāi)了、揉碎了,加上我自己
    發(fā)表于 06-12 17:20

    鴻蒙5開(kāi)發(fā)寶藏案例分享---體驗(yàn)流暢的首頁(yè)信息流

    ?** 鴻蒙新聞?lì)愂醉?yè)開(kāi)發(fā)全攻略:流暢動(dòng)效+懶加載實(shí)戰(zhàn)** Hey 各位鴻蒙開(kāi)發(fā)者! 今天要分享一個(gè)超實(shí)用的鴻蒙新聞?lì)愂醉?yè)開(kāi)發(fā)方案,官方文檔里藏著的寶藏案例被我挖出來(lái)了!從流暢的Tab切換動(dòng)效到絲滑
    發(fā)表于 06-12 11:42

    python入門圣經(jīng)-高清電子書(shū)(建議下載)

    和Pygal 等強(qiáng)大的Python 庫(kù)和工具介紹,以及列表、字典、if 語(yǔ)句、類、文件與異常、代碼測(cè)試等內(nèi)容; 第二部分將理論付諸實(shí)踐,講解如何開(kāi)發(fā)三個(gè)項(xiàng)目,包括簡(jiǎn)單的Python 2D 游戲開(kāi)發(fā)如何利用數(shù)據(jù)
    發(fā)表于 04-10 16:53

    迅為瑞芯微RK3562開(kāi)發(fā)板/核心板流暢運(yùn)行Android13、Debian11、Buildroot、Ubuntu22系統(tǒng)

    、RGB、HDMI、MIP1、兩路CAMERA、SARADC、4G、5G通信模塊等接口一應(yīng)俱全 流暢運(yùn)行Android13、Debian11、Buildroot、Ubuntu22系統(tǒng)。
    發(fā)表于 04-08 17:13

    Web Components實(shí)踐:如何搭建一個(gè)框架無(wú)關(guān)的AI組件庫(kù)

    作者: 京東科技 牛志偉 一、讓人又愛(ài)又恨的Web Components Web Components是一種用于構(gòu)建可重用的Web元素的技術(shù)。它允許開(kāi)發(fā)者創(chuàng)建自定義的HTML元素,這些元素可以在
    的頭像 發(fā)表于 04-08 11:27 ?284次閱讀
    <b class='flag-5'>Web</b> Components實(shí)踐:如何搭建一<b class='flag-5'>個(gè)</b><b class='flag-5'>框架</b>無(wú)關(guān)的AI組件庫(kù)

    「極速探索HarmonyOS NEXT 」閱讀體驗(yàn)】+Web組件

    \'@ohos.web.webview\'進(jìn)行導(dǎo)入,效果一樣 @Entry@Component struct WebComponent{ //創(chuàng)建一個(gè)新的控制器 webviewController
    發(fā)表于 03-10 10:39

    基于Django89的web框架代碼

    基于Django89的web框架代碼,超詳細(xì)
    發(fā)表于 02-10 15:38 ?0次下載

    熱門前端框架:引領(lǐng)現(xiàn)代 Web 開(kāi)發(fā)的潮流

    在當(dāng)今快速發(fā)展的前端開(kāi)發(fā)領(lǐng)域,熱門前端框架如 React、Vue 和 Angular 等,成為了開(kāi)發(fā)者構(gòu)建高效、高性能 Web 應(yīng)用的得力工具。它們各自具有獨(dú)特的特點(diǎn)和優(yōu)勢(shì),引領(lǐng)著現(xiàn)代 Web 開(kāi)發(fā)
    的頭像 發(fā)表于 01-22 10:08 ?468次閱讀

    華為云 Flexus X 實(shí)例下的場(chǎng)景體驗(yàn)——小企業(yè)使用 Python 語(yǔ)言——超迅速搭建簡(jiǎn)單公網(wǎng) API 接口服務(wù)

    ? 前言 小企業(yè)為了快速搞定一些接口功能如果不使用 Python 的話相對(duì)來(lái)說(shuō)復(fù)雜度還是很高的,這里我來(lái)通過(guò)【華為云 Flexus X 實(shí)例】來(lái)迅速的搭建一個(gè) Python 的 WebApi 示例
    的頭像 發(fā)表于 12-27 13:46 ?525次閱讀
    華為云 Flexus X 實(shí)例下的場(chǎng)景體驗(yàn)——小企業(yè)使用 <b class='flag-5'>Python</b> 語(yǔ)言——超迅速搭建簡(jiǎn)單公網(wǎng) API 接口服務(wù)

    SSM框架的源碼解析與理解

    MVC模式,使得開(kāi)發(fā)Web應(yīng)用程序變得更加高效和簡(jiǎn)單。 1. Spring框架 基本功能: Spring是一個(gè)開(kāi)源的Java平臺(tái),它提供了全面的基礎(chǔ)設(shè)施支持,以便開(kāi)發(fā)Java應(yīng)用程序。Spring
    的頭像 發(fā)表于 12-17 09:20 ?993次閱讀

    SSM框架在Java開(kāi)發(fā)中的應(yīng)用 如何使用SSM進(jìn)行web開(kāi)發(fā)

    。以下是對(duì)SSM框架在Java開(kāi)發(fā)中的應(yīng)用,以及如何使用SSM進(jìn)行web開(kāi)發(fā)的介紹: SSM框架的組件及其作用 Spring :Spring是一個(gè)開(kāi)源的Java/Java EE全功能棧
    的頭像 發(fā)表于 12-16 17:28 ?1599次閱讀

    JavaWeb框架比較

    JavaWeb框架為開(kāi)發(fā)人員提供了構(gòu)建Web應(yīng)用程序所需的基礎(chǔ)設(shè)施和組件,每種框架都有其獨(dú)特的特點(diǎn)和適用場(chǎng)景。以下是對(duì)幾種主流JavaWeb框架的比較: Spring MVC 優(yōu)點(diǎn)
    的頭像 發(fā)表于 11-25 09:14 ?692次閱讀

    使用Python進(jìn)行圖像處理

    下面是一個(gè)關(guān)于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發(fā)表于 11-07 10:14 ?592次閱讀
    使用<b class='flag-5'>Python</b>進(jìn)行圖像處理

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了一個(gè)非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們?cè)谏疃葘W(xué)習(xí)領(lǐng)域的應(yīng)用。 Python簡(jiǎn)介
    的頭像 發(fā)表于 08-01 15:27 ?3287次閱讀