主要模块
web – FriendFeed 使用的基础 Web 框架,包含了 Tornado 的大多数重要的功能
escape – XHTML, JSON, URL 的编码/解码方法
database – 对 MySQLdb 的简单封装,使其更容易使用
template – 基于 Python 的 web 模板系统
httpclient – 非阻塞式 HTTP 客户端,它被设计用来和 web 及 httpserver 协同工作
auth – 第三方认证的实现(包括 Google OpenID/OAuth、Facebook Platform、Yahoo BBAuth、FriendFeed OpenID/OAuth、Twitter OAuth)
locale – 针对本地化和翻译的支持
options – 命令行和配置文件解析工具,针对服务器环境做了优化
底层模块
httpserver – 服务于 web 模块的一个非常简单的 HTTP 服务器的实现
iostream – 对非阻塞式的 socket 的简单封装,以方便常用读写操作
ioloop – 核心的 I/O 循环
今天下午在python活动中和大家分享了Tornadoweb的一些话题,这个由friendfeed团队开发的单线程web服务器显示出了惊人的魅力。一直以来社区中就有对于这类独特应用编程思想的讨论,但是很少有应用级别的产品推出,这次tonadoweb给我们一个性能不错的答案。
期间向大家介绍了tornadoweb包含的一些组件,最后给大家演示了长连接输出。如果使用长连接输出javascript,可以实现由服务器端定时向web推送信息的功能,当时认为这个功能可以做chat,现在看更加适合更新股票信息。
随意观看Tornadoweb的自带的例子,发现了一个更为经典的长连接chat demo,采取的方式是让所有的chat客户端都请求页面等待,但是页面仅会在有新消息到来时响应请求。这个demo的思路很是开阔,实现了即时的push通知。
Tornadoweb作为一个不用依赖stackless python以及greenlet的框架,让我们领略了异步编程的魅力,确实值得我们学习研究。