1. 程式人生 > >(二)Web框架-龍捲風Tornado之世界上最簡單的Tornado示例

(二)Web框架-龍捲風Tornado之世界上最簡單的Tornado示例

原始碼

# _*_coding:utf-8_*_
import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello Tornado")

def make_app():
    return tornado.web.Application(handlers=[
        (r"/", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888
) tornado.ioloop.IOLoop.current().start()

原始碼詳解

# _*_coding:utf-8_*_

#匯入非同步IO網路庫,它是核心的IO迴圈
import tornado.ioloop

#如下所匯入的模組是FriendFeed 使用的基礎 Web 框架,包含了 Tornado 的大多數重
#要的功能
import tornado.web

#編寫一個Tornado應用中最多的工作是定義類繼承Tornado的#RequestHandler類,該類
#有一系列有用的內建方法,比如如下的write方法,
#它以一個字串作為函式的引數,並將其寫入到HTTP響應中
class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello Tornado") #然後建立了一個Tornado的Application類的例項。傳遞給Application類__init__方 #法的最重要的引數是handlers。它告訴Tornado應該用哪個類來響應請求。當然也可以直 #接寫成[(r"/", MainHandler),]略去左值handlers def make_app(): return tornado.web.Application(handlers=[ (r"/"
, MainHandler), ]) if __name__ == "__main__": #呼叫函式make_app,此時也例項化了web模組的Application類,將例項賦給app app = make_app() #呼叫例項的listen方法,並傳入int值8888作為監聽埠,而實際上是將其傳 #遞給Tornado的httpserver模組(服務於 web 模組的一個非常簡單的 HTTP 伺服器的 #實現)的HTTPServer物件,最後,在程式準備好接收HTTP請求後,我們建立一個 #Tornado的IOLoop的例項。 #Application類的#listen方法原始碼如下: # #def listen(self, port, address="", **kwargs): # from tornado.httpserver import HTTPServer # server = HTTPServer(self, **kwargs) # server.listen(port, address) # return server # app.listen(8888) #啟動事件迴圈 tornado.ioloop.IOLoop.current().start()

訪問