Python:Tornado 开篇

下一篇文章:Python:Tornado 第一章:异步及协程基础:第一节:同步与异步I/O

Tornado是一个可扩展的非阻塞Web服务器以及相关工具的总称。Tornado每秒可以处理数以千计的连接,所以对于实时Web服务来说,Tornado是一个理想的Web框架。

Tornado作为FriendFeed网站的基础框架,于2009年9月10日发布,目前已经获得了很多社区的支持,并且在一系列不同的场景种得到应用。除了FriendFeed和Facebook外,还有很多公司在转向Tornado。

相对其他Python网络框架,Tornado有如下特点:

  • 完备的Web框架:与Django、Flask一样,Tornado也提供了URL路由映射、Request上下文、基于模板的页面渲染技术等开发web应用的必备工具。
  • 是一个高效的网络库,性能与Twisted、Gevent等底层Python框架相媲美:提供了异步I/O支持、超时事件处理,这使得Tornado除了可以作为Web应用服务器框架外,还可以用来做爬虫应用、物联网关、游戏服务器等后台应用。
  • 提供高效HTTPClient:除了服务器端框架,Tornado还提供了基于异步框架的HTTP客户端。
  • 提供高效的内部HTTP服务器:虽然其他Python网络框架(Django、Flask)也提供了内部HTTP服务器,但它们的HTTP服务器由于性能原因只能用于测试环境。而Tornado的HTTP服务器与Tornado异步调用紧密结合,可以直接用于生产环境。
  • 完备的WebSocket支持:WebSocket是HTML5的一种新标准,实现了浏览器与服务器之间的双向实时通信。

因为Tornado的上述特点,Tornado常被用作大型站点的接口服务框架,而不像Django那样着眼于建立完整的大型网站。

另外,用户身份认证是几乎所有网站的必要功能,对于Tornado的开发源头FriendFeed和Facebook这样的社交网站尤其如此。所以Tornado框架本身较其他Python框架集成了最为丰富的用户身份验证功能。使用该框架,开发者能够快速开发出即安全又强大的用户身份认证机制,例如:Cookie机制、用户身份认证、防止跨站攻击等等。

相关推荐