Tornado Web 服务器
优质
小牛编辑
128浏览
2023-12-01
Tornado 是一个基于Python的Web服务框架和 异步网络库, 最早开发与 FriendFeed 公司. 通过利用非阻塞网络 I/O, Tornado 可以承载成千上万的活动连接, 完美的实现了 长连接, WebSockets, 和其他对于每一位用户来说需要长连接的程序.
快速链接
- 下载版本4.4: )
- Source (github)
- 邮件列表: discussion 和 announcements
- Stack Overflow
- Wiki
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 上, 虽然这并不是官方所推荐的, 我们仅仅推荐用它来做开发.