简单比较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的优点也是缺点)