¶
Tornado 是一个python web框架和异步网络库,最初开发于 FriendFeed . 通过使用非阻塞网络I/O,Tornado可以扩展到数万个开放连接,使其非常适合 long polling , WebSockets 以及其他需要与每个用户建立长期连接的应用程序。
快速链接¶
当前版本: 6.2.dev1 (download from PyPI , release notes )
邮件列表: discussion 和 announcements
你好,世界¶
下面是一个简单的 "Hello, world" Tornado 网页应用程序示例:
import asyncio
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
def make_app():
return tornado.web.Application([
(r"/", MainHandler),
])
async def main():
app = make_app()
app.listen(8888)
await asyncio.Event().wait()
if __name__ == "__main__":
asyncio.run(main())
本例不使用任何Tornado的异步特性;请参见 simple chat room .
线程和wsgi¶
Tornado与大多数python Web框架不同。它不是基于 WSGI ,并且通常每个进程只运行一个线程。见 用户指南 更多关于Tornado的异步编程方法。
虽然在 tornado.wsgi
模块,它不是开发的重点,大多数应用程序都应该使用Tornado自己的接口(例如 tornado.web
)直接而不是使用wsgi。
通常,Tornado代码不是线程安全的。Tornado中唯一可以安全地从其他线程调用的方法是 IOLoop.add_callback
. 您也可以使用 IOLoop.run_in_executor
在另一个线程上异步运行阻塞函数,但请注意,传递给 run_in_executor
应避免引用任何 Tornado 对象。 run_in_executor
是与阻塞代码交互的推荐方法。
asyncio
整合¶
Tornado与标准库集成 asyncio
模块和共享相同的事件循环(默认情况下,从Tornado 5.0开始)。通常,设计用于 asyncio
可以与 Tornado 自由混合。
安装¶
pip install tornado
龙卷风列在 PyPI 并且可以安装 pip
. 请注意,源发行版包括以这种方式安装Tornado时不存在的演示应用程序,因此您可能希望下载源tarball的副本或克隆 git repository 也。
必备条件 :Tornado 6.0需要使用Python3.7或更高版本(请参阅 Tornado 5.1 如果需要与Python2.7兼容)。以下可选软件包可能非常有用:
pycurl 由可选的
tornado.curl_httpclient
. 需要libcurl 7.22或更高版本。Twisted 可与中的类一起使用
tornado.platform.twisted
.pycares 是一个可选的非阻塞DNS解析程序,可以在线程不合适时使用。
平台 :Tornado是为类Unix平台设计的,在系统支持方面具有最佳的性能和可扩展性。 epoll
(Linux) kqueue
(BSD/MACOS),或 /dev/poll
(索拉里斯)
Tornado也将在Windows上运行,尽管该配置没有正式支持或推荐用于生产。Windows上缺少一些功能(包括多进程模式),并且扩展性有限(即使Tornado是建立在 asyncio
支持Windows的Tornado不使用Windows上可扩展网络所需的API)。
文档¶
本文件也可在 PDF and Epub formats .
- 用户指南
- Web框架
- HTTP服务器和客户端
- 异步网络
- 协程和并发性
- 与其他服务集成
- 实用工具
- 常见问题
- 发行说明
- 什么新的龙卷风6.0
- 龙卷风6.0.4的新功能
- 龙卷风6.0.3的新功能
- Tornado 6.0.2的新功能
- Tornado 6.0.1的新功能
- Tornado 6.0的新功能
- Tornado 5.1.1的新功能
- Tornado 5.1的新功能
- Tornado 5.0.2的新功能
- Tornado 5.0.1的新功能
- Tornado 5.0的新功能
- Tornado 4.5.3的新功能
- Tornado 4.5.2的新功能
- Tornado 4.5.1的新功能
- Tornado 4.5的新功能
- Tornado 4.4.3的新功能
- Tornado 4.4.2的新功能
- Tornado 4.4.1的新功能
- Tornado 4.4的新功能
- Tornado 4.3的新功能
- Tornado 4.2.1的新功能
- Tornado 4.2的新功能
- Tornado 4.1的新功能
- Tornado 4.0.2的新功能
- Tornado 4.0.1的新功能
- Tornado 4.0的新功能
- Tornado 3.2.2的新功能
- Tornado 3.2.1的新功能
- Tornado 3.2的新功能
- Tornado 3.1.1的新功能
- Tornado 3.1的新功能
- Tornado 3.0.2的新功能
- Tornado 3.0.1的新功能
- Tornado 3.0的新功能
- Tornado 2.4.1的新功能
- Tornado 2.4的新功能
- Tornado 2.3的新功能
- Tornado 2.2.1的新功能
- Tornado 2.2的新功能
- Tornado 2.1.1的新功能
- Tornado 2.1的新功能
- Tornado 2.0的新功能
- Tornado 1.2.1的新功能
- Tornado 1.2的新功能
- Tornado 1.1.1的新功能
- Tornado 1.1的新功能
- Tornado 1.0.1的新功能
- Tornado 1.0的新功能
讨论和支持¶
你可以讨论龙卷风 the Tornado developer mailing list 并报告 GitHub issue tracker . 有关其他资源的链接,请访问 Tornado wiki . 新版本发布于 announcements mailing list .
Tornado 在 Apache License, Version 2.0 .
本网站和所有文档的许可使用 Creative Commons 3.0 .