欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(二)Web框架-龙卷风Tornado之世界上最简单的Tornado示例

程序员文章站 2022-07-15 21:01:02
...

源码

# _*_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()

访问

http://127.0.0.1:8888/