Tornado 是什么

牧码人 2016-09-25

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发布。

相关推荐