Tornado 在很大程度上与 Flask 一样简单,但有一个主要区别:Tornado 是专门为处理异步进程而构建的。Tornado 是一个支持异步的Web框架,通过使用非阻塞 I/O 流,它可以支撑成千上万的开放连接,效率非常高,下面我们介绍下它的安装方式。
pip install tornado
第一个tornado程序
创建一个简单的helloworld.py
# -*- encoding=utf-8 -*-
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
def make_app():
return tornado.web.Application([(r"/", MainHandler),])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
Tornado我还是比较喜欢,可惜除了web框架之外,数据库或者其他几乎都是阻塞的。Tornado与Flask的函数形式的写法不一样,Tornado 属于class形式的写法.
既然Tornado这么好用,性能又高,为什么好像还没有Flask受欢迎呢?因为Web开发虽然看起来就是分析一下请求,给一下响应,但是远 不是这么简单,还需要和数据库打交道,Tornado自身可以写出非阻塞的代码,但是连数据库,想用ORM的时候却不行,所以也不是特别方便。因此很多人选择使用Flask或者是Django.
tornado的基础web框架模块RequestHandler封装了请求和响应。
Application核心应用类,类似于flask的app,是和服务器对接的接口,保存了路由信息,
listen方法绑定端口创建http服务器实例,但并未监听,与socket的listen不同/
1、 Tornado的优势
轻量级web框架
异步非阻塞IO处理方式
出色的抗负载能力
优异的处理性能,不依赖多进程/多线程,一定程度上解决C10K问题
WSGI全栈替代产品,推荐同时使用其web框架和HTTP服务器
2.Tornado VS Django
Django:重量级web框架,功能大而全,注重高效开发
内置管理后台
内置封装完善的ORM操作
session功能
后台管理
缺陷:高耦合
Tornado:轻量级web框架,功能少而精,注重性能优越
HTTP服务器
异步编程
WebSocket
缺陷:入门门槛较高
跟多内容:官方翻译文档请参考:http://shouce.jb51.net/tornado/index.html