tornado:从helloworld看四大组件

tornado学习路线以项目实际练习为主。

先来看官方给定的helloworld实例:

import tornado.ioloop
import tornado.web

class MainHander(tornado.web.RequestHandler):
    def get(self):
        self.write('hello world')

def make_app():
    return tornado.web.Application([('/',MainHander),])

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

结果展示:

tornado web服务器由四大组件:

1:ioloop实例,全局的tornado事件循环,是服务器的引擎核心。

2:app实例,代表一个完整的后端app,会挂接一个服务器套接字端口对外提供服务。

3:hander类,代表业务逻辑

4:路由表,将指定的url规则和hander连接起来,形成一个路由映射表

组件之间的关系:

一个ioloop包含多个app

一个app包含一个路由表

一个路由表包含多个hander

当请求来临是,ioloop读取请求并解包为http请求对象,找到该套接字上对应app的路由表,通过请求对象的url查询路由表中挂接的hander,然后再执行hander。hander方法执行后一般会返回一个对象,ioloop负责将对象包装成http响应对象序列化发送给客户端。

ioloop特别说明:

ioloop是服务的引擎核心,他是发动机,负责接收和响应客户端请求,负责驱动业务hander的运行,负责服务器内部定时任务的执行。

代码图示:

tornado:从helloworld看四大组件_第1张图片

你可能感兴趣的:(python_web)