Tornado5.0.2翻译文档 - Tornado

Tornado 是一个 Python 的 Web 框架和异步网络库,最初由 FriendFeed 开发。通过使用非阻塞网络I/O,Tornado 可以支持数以万计的连接,非常适合长轮询WebSockets 和其他需要与每个用户建立长连接的应用程序。

快速链接

Hello, World

以下是利用 Tornado 实现的一个简单的 “Hello, World” 应用程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 的任何异步特性,异步特性可以移步 simple char room

线程和 WSGI

Tornado 与其他大多 Python web 框架不同,它不基于 WSGI 且每个进程只能运行一个 Tornado 线程,移步 用户手册 了解更多 Tornado 的异步编程方式。

然而 WSGI 支持的一些方法可以在 tornado.wsgi 模块中找到,但这并不是 Tornado 后续发展的重点,大多数 Tornado 应用应该直接使用其自带的接口(例如 tornado.web)而不是 WSGI。

一般来说,Tornado 的应用代码并不是线程安全的,Tornado 中唯一可以安全地从其他线程调用的方法是 IOLoop.add_callback 。你也可以使用 IOLoop.run_in_executor 在另一个线程上异步运行阻塞函数,但请注意,传给 run_in_executor 的函数不能引用任何 Tornado 对象。与阻塞函数进行交互时,推荐使用 run_in_executor

安装

1
pip install tornado

Tornado 在 PyPi 可获取安装列表中,所以可以直接使用 pip 方式进行安装。请注意,源代码发行版包含演示应用程序,当以这种方式安装 Tornado 时,这些演示应用程序将不会存在,因此您可能希望下载源代码 tar 包或克隆 git repository

安装条件:Tornado 运行在 Python 2.7 和 Python 3.4+上。 Python 2.7.9 中需要对 ssl 模块进行更新(在某些发行版中,这些更新可能在较早的 Python 版本中可用)。除了 pipsetup.py 自动安装的依赖外,以下可选软件包可能会有用:

平台:尽管为了获得最佳性能和可扩展性,Tornado 应该可以在任何类Unix平台上运行,但对于生产部署,建议只使用Linux(with epoll)和 BSD(with kqueue)(尽管 Mac OS X 源自 BSD 并支持 kqueue,但其网络 性能一般很差,所以建议仅用于开发使用)。Tornado 也可以在 Windows 上运行,这种配置没有官方的支持,只推荐用于开发。 如果不修改 Tornado IOLoop 接口,就不可能添加本地 Tornado Windows IOLoop 实现,且不能利用像 AsyncIO 或 Twisted 等框架的 Windows 的 IOCP 支持。

文档

讨论和支持

你可以在 the Tornado developer mailing list 参与 Tornado 的讨论,在 GitHub issue tracker 上提交你的bug,更多资源可以在 Tornado wiki 找到,新版本发布在 announcements mailing list

Read More:

Tornado