Python:一個簡單的tornado程序:監聽服務器端口,訪問時給瀏覽器返回一個字符串

一個簡單的tornado程序

tornado是python裏的一個模塊,它是一種web服務器軟件的開源版本

它作爲web服務器,具有較出色的抗負載能力,它適用於用戶量大,高併發,或者大量的HTTP持久連接的情況。

我們來看一段簡單的程序代碼

import tornado.web
import tornado.ioloop

class IndexHander(tornado.web.RequestHander):
     def get(self):
         self.write("hello world! My name is alien!")

if __name__ = "__main__":
    app = tornado.web.Application([
        (r"/", IndexHander)
    ])
    app.listen(8000)
    tornado.ioloop.IOLoop.current().start()

當我們運行這段程序時,在瀏覽器上輸入ip+我們監聽的端口就可以顯示這樣的效果:
在這裏插入圖片描述
那麼我們現在逐句分析這段小代碼:

import tornado.web
import tornado.ioloop

首先要進行導入操作
這裏的tornado.web是tornado的基礎web框架模塊
tornado.ioloop是tornado的核心I/O循環模塊(也就是說,服務一起,就不會自己關閉了)ioloop封裝了linux的epoll和BSD的kquene,這個循環模塊是tornado高效的基礎

class IndexHander(tornado.web.RequestHander):
     def get(self):
         self.write("hello world! My name is alien!")

這裏是創建了一個類,繼承了tornado.web.RequestHander類,其實就是一個業務處理類,用於接收請求的
裏面的get函數就是處理get請求的
write函數這裏返回了一個字符串,也就響應信息爲這段字符串

if __name__ = "__main__":

這段python代碼就是當入口函數爲當前文件時,執行以下代碼

    app = tornado.web.Application([
        (r"/", IndexHander)
    ])

這段代碼是利用tornado.web下的Application類實例化出一個對象,這個對象名叫app,(r"/", IndexHander)這個是路由映射
Application類是tornado.web框架的核心應用類,是與服務器對應的接口,它裏面保存了路由映射表

    app.listen(8000)

這裏的listen是綁定了監聽端口8000
用Application類創建出來的對象app中,有一個listen方法,因此可以直接調用listen
所以listen就是創建一個http服務器後綁定監聽端口

注意注意:
這裏的listen只是綁定了端口,並沒有開啓監聽

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

這裏是啓動該實例的I/O循環
IOLoop.current()返回了當前線程的ioloop實例,也就是返回了一個對象–當前線程讀寫操作的對象
IOLoop.start()啓動了ioloop實例的I/O循環,等待客戶端的鏈接

注意注意:
IOLoop.start()纔開啓了監聽,剛剛上面的listen是沒有開啓監聽的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章