溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

關(guān)于Python Tornado核心詳細(xì)介紹

發(fā)布時(shí)間:2020-06-24 17:46:07 來(lái)源:億速云 閱讀:237 作者:清晨 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹關(guān)于Python Tornado核心詳細(xì)介紹,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

Tornado的核心是什么?Tornado 的核心是 ioloop 和 iostream 這兩個(gè)模塊,前者提供了 一個(gè)高效的 I/O 事件循環(huán),后者則封裝了 一個(gè)無(wú)阻塞的 socket 。 通過(guò)向 ioloop 中添加網(wǎng)絡(luò) I/O 事件,利用無(wú)阻塞的 socket ,再搭配相應(yīng)的回調(diào)函數(shù),便可達(dá)到夢(mèng)寐以求的高效異步執(zhí)行。

一、Tornado簡(jiǎn)介

  Tornado全稱Tornado Web Server,是一個(gè)用Python語(yǔ)言寫(xiě)成的Web服務(wù)器兼Web應(yīng)用框架,由FriendFeed公司在自己的網(wǎng)站FriendFeed中使用,被Facebook收購(gòu)以后框架在2009年9月以開(kāi)源軟件形式開(kāi)放給大眾。

二、Tornado特點(diǎn):

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

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

三、Tornado性能:

  Tornado有著優(yōu)異的性能。它試圖解決C10k問(wèn)題,即處理大于或等于一萬(wàn)的并發(fā)。

  Tornado框架和服務(wù)器一起組成一個(gè)WSGI的全棧替代品。單獨(dú)在WSGI容器中使用tornado網(wǎng)絡(luò)框架或者tornaod http服務(wù)器,有一定的局限性,為了最大化的利用tornado的性能,推薦同時(shí)使用tornaod的網(wǎng)絡(luò)框架和HTTP服務(wù)器。

四、應(yīng)用場(chǎng)景

  1,用戶量大,高并發(fā)

  如秒殺搶購(gòu)、雙十一某寶購(gòu)物、春節(jié)搶火車票

  2,大量的HTTP持久連接

  使用同一個(gè)TCP連接來(lái)發(fā)送和接收多個(gè)HTTP請(qǐng)求/應(yīng)答,而不是為每一個(gè)新的請(qǐng)求/應(yīng)答打開(kāi)新的連接的方法。

  對(duì)于HTTP 1.0,可以在請(qǐng)求的包頭(Header)中添加Connection: Keep-Alive。

四、Tornado開(kāi)發(fā)方向:

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

  •   HTTP服務(wù)器
  •   異步編程
  •   WebSockets

五、tornado的基礎(chǔ)web框架模塊

  RequestHandler

  封裝了對(duì)應(yīng)一個(gè)請(qǐng)求的所有信息和方法,write(響應(yīng)信息)就是寫(xiě)響應(yīng)信息的一個(gè)方法;對(duì)應(yīng)每一種http請(qǐng)求方式(get、post等),把對(duì)應(yīng)的處理邏輯寫(xiě)進(jìn)同名的成員方法中(如對(duì)應(yīng)get請(qǐng)求方式,就將對(duì)應(yīng)的處理邏輯寫(xiě)在get()方法中),當(dāng)沒(méi)有對(duì)應(yīng)請(qǐng)求方式的成員方法時(shí),會(huì)返回“405: Method Not Allowed”錯(cuò)誤。

  Application

  Tornado Web框架的核心應(yīng)用類,是與服務(wù)器對(duì)接的接口,里面保存了路由信息表,其初始化接收的第一個(gè)參數(shù)就是一個(gè)路由信息映射元組的列表;其listen(端口)方法用來(lái)創(chuàng)建一個(gè)http服務(wù)器實(shí)例,并綁定到給定端口

以上是關(guān)于Python Tornado核心詳細(xì)介紹的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI