当前位置: 首页 > 文档资料 > Tornado 用户手册 >

Tornado Web 服务器

优质
小牛编辑
113浏览
2023-12-01

Tornado 是一个基于Python的Web服务框架和 异步网络库, 最早开发与 FriendFeed 公司. 通过利用非阻塞网络 I/O, Tornado 可以承载成千上万的活动连接, 完美的实现了 长连接, WebSockets, 和其他对于每一位用户来说需要长连接的程序.

快速链接

Hello, world

这是一个基于Tornado的简易 “Hello, world” web应用程序:

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 中被找到.而且可以通过 pip 或者 ``easy_install``来安装.注意这样安装Tornado 可能不会包含源代码中的示例程序, 所以你或许会需要一份软件的源代码.

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

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

Tornado源代码 被托管在的 GitHub.

环境要求: Tornado 4.3 可以运行在 Python 2.7, 和 3.3+ 对于 Python 2, 版本 2.7.9 以上是被 强烈 推荐的由于这些版本提供了SSL. 除了在 pip 或者 setup.py install 中安装的依赖需求包之外, 以下包有可能会被用到:

  • concurrent.futures is the recommended thread pool for use with Tornado and enables the use of . It is needed only on Python 2; Python 3 includes this package in the standard library.
  • pycurl is used by the optional tornado.curl_httpclient. Libcurl version 7.19.3.1 or higher is required; version 7.21.1 or higher is recommended.
  • Twisted may be used with the classes in .
  • pycares is an alternative non-blocking DNS resolver that can be used when threads are not appropriate.
  • Monotime adds support for a monotonic clock, which improves reliability in environments where clock adjustments are frequent. No longer needed in Python 3.3.
  • monotonic adds support for a monotonic clock. Alternative to Monotime. No longer needed in Python 3.3.

平台: Tornado 应该运行在类 Unix 平台, 对于Linux (通过 epoll) 和 BSD (通过 kqueue) 可以获得更好的性能和可扩展性, 但我们仅推荐它们来不熟产品 (虽然 Mac OS X 也是基于 BSD 的,并且也支持 kqueue, 但是它的网络性能十分的差所以 我们只推荐用它来进行开发). Tornado 也可以运行在 Windows 上, 虽然这并不是官方所推荐的, 我们仅仅推荐用它来做开发.