译者说
Tornado 4.3
于2015年11月6日刚发布,该版本正式支持Python3.5
的async
/await
关键字,并且用旧版本CPython编译Tornado同样可以使用这两个关键字,这无疑是一种进步。其次,这是最后一个支持Python2.6
和Python3.2
的版本了,在后续的版本了会移除对它们的兼容。现在网络上还没有Tornado4.3
的中文文档,所以为了让更多的朋友能接触并学习到它,我开始了这个翻译项目,希望感兴趣的小伙伴可以一起参与翻译,项目地址是tornado-zh on Github,翻译好的文档会优先发布在Read the Docs上。欢迎Issue or PR。点击原文即可。
Tornado Web Server
Tornado是一个Python web框架和异步网络库,起初在FriendFeed开发.通过使用非阻塞网络I/O,Tornado可以支撑上万级的连接,处理 长连接,WebSockets和其他需要与每个用户保持长久连接的应用.
相关链接
- 下载当前4.3版本
- 源码 (github)
- 邮件列表: discussion and announcements
- Stack Overflow
- Wiki
Hello, world
这是一个简单的Tornado的web应用::
代码语言:javascript复制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 chat room.
安装
自动安装::
代码语言:javascript复制pip install tornado
Tornado在 PyPI列表中,可以使用 pip
或 easy_install
安装. 注意源码发布中包含的示例应用可能不会出现在这种方式安装的代码中,所以你也可能希望通过下载一份源码包的拷贝来进行安装.
手动安装: 下载当前4.3版本:
代码语言:javascript复制tar xvzf tornado-4.3.tar.gz
cd tornado-4.3
python setup.py build
sudo python setup.py install
Tornado的源码托管在 hosted on GitHub.
Prerequisites: Tornado 4.3 运行在Python 2.6, 2.7, 和 3.2
(对Python 2.6 和 3.2的支持是不推荐的并将在下个版本中移除). 对Python 2的2.7.9或更新版 强烈
推荐提高对SSL支持. 另外Tornado的依赖包可能通过 pip
or setup.py install
被自动安装,
下面这些可选包可能是有用的:
- unittest2是用来在Python 2.6上运行Tornado的测试用例的(更高版本的Python是不需要的)
- concurrent.futures是推荐配合Tornado使用的线程池并且可以支持
tornado.netutil.ThreadedResolver
的用法. 它只在Python 2中被需要,Python 3已经包括了这个标准库. - pycurl是在
tornado.curl_httpclient
中可选使用的.需要Libcurl 7.19.3.1 或更高版本;推荐使用7.21.1或更高版本. - Twisted会在
tornado.platform.twisted
中使用. - pycares是一个当线程不适用情况下的非阻塞DNS解决方案.
- Monotime添加对monotonic clock的支持,当环境中的时钟被频繁调整的时候,改善其可靠性. 在Python 3.3中不再需要.
平台: Tornado可以运行在任何类Unix平台上,虽然为了最好的性能和可扩展性
只有Linux(使用 epoll
)和BSD(使用 kqueue
)是推荐的产品部署环境(尽管Mac OS X通过BSD发展来并且支持kqueue,但它的网络质量很差,所以它只适合开发使用)
Tornado也可以运行在Windows上,虽然它的配置不是官方支持的,同时也仅仅推荐开发使用.
文档
这个文档同时也提供 PDF 和 Epub 格式.
讨论和支持
你可以讨论Tornado在 Tornado 开发者邮件列表, 报告bug在 GitHub issue tracker.
其他资源可以在 Tornado wiki上找到. 新版本会宣布在 announcements mailing list.
Tornado is available underthe Apache License, Version 2.0.
This web site and all documentation is licensed under Creative Commons 3.0.