import tornado.web # web服务 import tornado.ioloop # i/o 时间循环 class mainhandler(tornado.web.requesthandler): def get(self): self.write("hello world!") # 建立路由表 app = tornado.web.application([ (r"/index", mainhandler), ]) if __name__ == "__main__": app.listen(8000) # 监听端口 # tornado.ioloop.ioloop.current().start() tornado.ioloop.ioloop.instance().start() # 开始事件
第二种启动方式
import tornado.web # web服务 import tornado.ioloop # i/o 时间循环 import tornado.httpserver # 新引入httpserver模块,单线程的http服务 class mainhandler(tornado.web.requesthandler): def get(self): self.write("hello world!") # 建立路由表 app = tornado.web.application([ (r"/index", mainhandler), ]) if __name__ == "__main__": http_server = tornado.httpserver.httpserver(app) http_server.listen(8000) # tornado.ioloop.ioloop.current().start() tornado.ioloop.ioloop.instance().start() # 开始事件
在这一修改版本中,我们引入了tornado.httpserver模块,顾名思义,它就是tornado的http服务器实现。
我们创建了一个http服务器实例http_server,因为服务器要服务于我们刚刚建立的web应用,将接收到的客户端请求通过web应用中的路由映射表引导到对应的handler中,所以在构建http_server对象的时候需要传出web应用对象app。http_server.listen(8000)将服务器绑定到8000端口。
实际上一版代码中app.listen(8000)正是对这一过程的简写。