(二)Web框架-龍捲風Tornado之世界上最簡單的Tornado示例
阿新 • • 發佈:2019-01-05
原始碼
# _*_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()