前言
前段時間用Python的tornado架構做了一個項目,做完之後老大讓我在團隊内部分享一下這個架構,做個入門介紹,于是就準備了以下這篇文章。
Tornado簡介
Tornado-基于Python的web服務端架構, 與現有主流的web服務端(以及大多數Python架構)有着明顯的差別: 它是非阻塞式,速度相當快。得利于其非阻塞式的方式,Tornado每秒可以處理數以千計的連接配接,是以是實時web服務的一個理想架構。
Tornado安裝
pip install tornado # 這裡我們使用的版本是5.1 Python版本是3.6
Tornado web程式流程建立web應用執行個體對象,第一個初始化參數為路由映射清單
定義實作路由映射清單的handler類
建立執行個體,監聽伺服器端口
啟動。執行IOLoop類的start()方法
處理HTTP請求
實作下列方法來處理HTTP請求RequestHandler.get(args, kwargs) #處理get請求
RequestHandler.post(*args, kwargs) #處理post請求
RequestHandler.put(args, kwargs) #處理put請求
RequestHandler.delete(*args, kwargs) #處理delete請求
Hello world
建立一個hello.py寫入以下内容
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello world")
class Application(tornado.web.Application):
def __init__(self):
handlers = [
(r'/', MainHandler),
]
tornado.web.Application.__init__(self, handlers)
if __name__=="__main__":
app = Application()
app.listen(8000)
print("Tornado Started in port 8000,http://127.0.0.1:8000")
tornado.ioloop.IOLoop.current().start()
執行該檔案
python3 hello.py
當你看到控制台輸出:
Tornado Started in port 8000,http://127.0.0.1:8000
既運作成功,此時浏覽器通路127.0.0.1:8000就可以看到Hello world
這個Hello world建立了一個socket服務并監聽8000端口,當接收到請求時根據路由規則來找到相應的類處理該請求,并根據請求方式指定相應類中的指定方法處理。 是以當我們在浏覽器鍵入127.0.0.1:8000,服務端會給浏覽器傳回Hello world。