Skip to main content

Tornado文档

Tornado 是一个Python Web框架和异步网络库,最初由 FriendFeed 开发。通过使用非阻塞网络I/O,Tornado可以扩展到数万个开放连接,使其成为 长轮询WebSockets 和其他需要与每个用户长期连接的应用程序的理想选择。

你好,世界

这里是一个简单的“你好,世界”示例web应用程序的Tornado:

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

此示例不使用任何Tornado异步功能;为此见 简单的聊天室

安装

自动安装:

pip install tornado

Tornado在 PyPI 中列出,可以安装 pipeasy_install。请注意,源代码分发包括当Tornado以这种方式安装时不存在的演示应用程序,因此您也可以下载源压缩包的副本。

手动安装:下载 tornado-4.4.2.tar.gz

tar xvzf tornado-4.4.2.tar.gz
cd tornado-4.4.2
python setup.py build
sudo python setup.py install

Tornado源代码是 托管在GitHub上

先决条件:Tornado 4.3在Python 2.7和3.3+上运行对于Python 2,2.7.9或更高版本是 strongly 推荐的改进的SSL支持。除了将由 pipsetup.py install 自动安装的要求,以下可选软件包可能有用:

  • concurrent.futures 是用于Tornado的推荐线程池,可以使用 ThreadedResolver。它只需要Python 2; Python 3在标准库中包括这个包。

  • pycurl 由可选的 tornado.curl_httpclient 使用。需要Libcurl版本7.19.3.1或更高版本;建议使用7.21.1或更高版本。

  • Twisted 可以与 tornado.platform.twisted 中的类一起使用。

  • pycares 是一种替代的非阻塞DNS解析器,可以在线程不适当时使用。

  • monotonicMonotime 添加对单调时钟的支持,这提高了时钟调整频繁的环境的可靠性。不再需要在Python 3.3。

平台:Tornado应该在任何类Unix平台上运行,尽管为了获得最佳性能和可扩展性,只有Linux(使用 epoll)和BSD(使用 kqueue)才能用于生产部署(即使Mac OS X是从BSD派生并支持kqueue,其网络性能一般较差,因此建议仅供开发使用)。 Tornado也将在Windows上运行,虽然这个配置没有官方支持,建议只用于开发使用。

文档

本文档也可在 PDF和Epub格式 中获得。

讨论和支持

您可以在 Tornado开发者邮件列表 上讨论Tornado,并报告 GitHub问题跟踪 上的错误。可以在 Tornado wiki 上找到其他资源的链接。新版本在 公告邮件列表 上公布。

Tornado在 Apache许可证,2.0版 下可用。

本网站和所有文档均根据 知识共享3.0 许可。