闪电龟龟--笔记

万物寻其根,通其堵,便能解其困。
  博客园  :: 新随笔  :: 管理

tornado 笔记

Posted on 2018-11-26 00:30  闪电龟龟  阅读(144)  评论(0编辑  收藏  举报

简单比较Django和Tornado

Django是走大而全的方向,注重的是高效开发,最出名的是全自动化管理后台

Tornado走的是少而精的方向,注重的是性能的优化,最出名的是异步非堵塞

 

安装方式:

通用:pip3 install tornado

还以可以下载wheel安装包进行安装,windows上可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/#tornado进行下载

 

写一个简单的程序

 

# 调用tornado的web处理框架
import tornado.web
import tornado.ioloop


class IndexHandler(tornado.web.RequestHandler):
    """ 定义路由的需要类 """
    def get(self):
        """ 指定get请求方式,如果使用post方式只需要def post()即可 """
        self.write('hello world')  # 打印内容

if __name__ == '__main__':
    # 定义路由
    app = tornado.web.Application([(r'/', IndexHandler)])
    app.listen(8000)  # 设置监听端口
    tornado.ioloop.IOLoop.current().start()  #  循环当前线程

 

tornado.ioloop.IOLoop是重点:
在系统中会使用epoll就相当是一个管家里面会进行socket()进行监听,如果有用户发送信息过来,就会访问定义的路由表,再通过路由表查找类
值得注意的是:如果同时有两个用户(socket)同时进行访问,那么会造成其中一个进行等待,当执行完成前一个的时候再执行下一个(这是tornado的优点也是缺点)