Tornado 是什么
Tornado是FriendFeed使用的可扩展的非阻塞式web服务器及其相关工具的开源版本。这个Web框架看起来有些像web.py或者Google的webapp,不过为了能有效利用非阻塞式服务器环境,这个Web框架还包含了一些相关的有用工具和优化。
Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对epoll的运用,Tornado每秒可以处理数以千计的连接,这意味着对于实时Web服务来说,Tornado是一个理想的Web框架。我们开发这个Web服务器的主要目的就是为了处理FriendFeed的实时功能——在FriendFeed的应用里每一个活动用户都会保持着一个服务器连接。(关于如何扩容服务器,以处理数以千计的客户端的连接的问题,请参阅C10Kproblem。)
请参见Tornado文档或Tornado原文文档(镜像)以详细了解该Web框架。
下载和安装
自动安装:Tornado已经列入PyPI,因此可以通过pip或者easy_install来安装。如果你没有安装libcurl的话,你需要将其单独安装到系统中。请参见下面的安装依赖一节。注意一点,使用pip或easy_install安装的Tornado并没有包含源代码中的demo程序。
手动安装:下载tornado-1.2.1.tar.gz
tarxvzftornado-1.2.1.tar.gz
cdtornado-1.2.1
pythonsetup.pybuild
sudopythonsetup.pyinstall
Tornado的代码托管在GitHub上面。对于Python2.6以上的版本,因为标准库中已经包括了对epoll的支持,所以你可以不用setup.py编译安装,只要简单地将tornado的目录添加到PYTHONPATH就可以使用了。
安装需求
Tornado在Python2.5,2.6,2.7中都经过了测试。要使用Tornado的所有功能,你需要安装PycURL(7.18.2或更高版本)以及simplejson(仅适用于Python2.5,2.6以后的版本标准库当中已经包含了对JSON的支持)。为方便起见,下面将列出MacOSX和Ubuntu中的完整安装方式:
MacOSX10.6(Python2.6+)
sudoeasy_installsetuptoolspycurl
UbuntuLinux(Python2.6+)
sudoapt-getinstallpython-pycurl
UbuntuLinux(Python2.5)
sudoapt-getinstallpython-devpython-pycurlpython-simplejson
Hello,world
以下是经典的"Hello,world"示例:
importtornado.ioloop
importtornado.web
classMainHandler(tornado.web.RequestHandler):
defget(self):
self.write("Hello,world")
application=tornado.web.Application([
(r"/",MainHandler),
])
if__name__=="__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
请参见Tornado文档以详细了解该Web框架。
讨论和支持
你可以在Tornado开发者邮件列表中讨论和提交bug。你还可以可以在Tornadowiki里面找到更多的资源。
Tornado是Facebook开源技术之一,基于ApacheLicence,Version2.0发布。
本站及其所有文档以CreativeCommons3.0发布。