Tornado简介
Tornado、Django、Flask可以说是python web三个用的最多的框架
特点
作为web框架,是一个轻量级的Web框架,类似于另一个Python web框架Web.py,其拥有异步非阻塞IO的处理方式。
作为Web服务器,Tornado有较为出色的抗负载能力,官方用nginx方向代理的方式部署Tornado和其它Python web应用框架进行对比,最大浏览量超过第二名近40%
性能
Tornado有着优异的性能,它试图解决C10K问题,即处理大于或等于一万的并发。
C10K:Concurrently handling ten thousand connections,即并发10000个连接
Tornado可以大致分为四个主要部分:
- 一个Web框架
- HTTP
- 异步网络库包括类IOLoop 和IOStream,其充当用于HTTP组件的构建块,并且还可以用于实现其它协议
- 一个协程库(tornado.gen)允许异步代码以比链接回调更直接的方式编写。
模块介绍
Web framework:
- tornado.web — RequestHandler and Application classes
- tornado.template - 模板
- tornado.routing - 基本路由实现
- tornado.escape - 转义和字符串操作
- tornado.locale - 国际化支持
- tornado.websocket - 与浏览器的双向通信socket
tornado的HTTP服务器和客户端:
- tornado.httpserver - 非阻塞HTTP服务器
- tornado.httpclient - 异步HTTP客户端
- tornado.httputil - 操纵HTTP头和URL
- tornado.http1connection - HTTP / 1.x客户端/服务器实现
异步网络:
- tornado.ioloop -主事件循环
- tornado.iostream - Flexible output generation(灵活的输出生成~不知道该怎么翻译好)
- tornado.netutil - 操作HTTP报头和URL的工具类
- tornado.tcpclient- IOStream连接工厂
- tornado.tcpserver- IOStream基于TCP的服务器
协程和并发:
- tornado.gen - 基于发生器的协程
- tornado.locks - 同步原语
- tornado.queues - 协程队列
- tornado.process - 用于多个进程的实用程序
与其他服务集成
- tornado.auth - 使用OpenID和OAuth进行第三方登录
- tornado.wsgi - 与其他Python框架和Web服务器的网关接口
- tornado.platform.caresresolver - 使用C-Ares的异步DNS解析器
- tornado.platform.twisted - twisted和tornado之间的桥梁
- tornado.platform.asyncio- asyncio和tornado之间的桥梁
Utilities
- tornado.autoreload - 自动检测开发中的代码更改
- tornado.concurrent- Work with Future objects
- tornado.log - 打印日志的
- tornado.options - 命令行解析
- tornado.stack_context - 跨异步回调的异常处理
- tornado.testing - 对异步代码的单元测试支持
- tornado.util - 通用工具类
案例
通过httpserver实现