Tornado是一个Python web框架和异步网络库,起初在FriendFeed上开发。通过使用非阻塞网络I/O,tornado可以支撑上万的开放链接,能支持长连接,WebSockets和其它要求长实时链接的应用。
这里是一个简单的“Hello, world”示例web应用。
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.current().start()
这个例子没有使用任何的Tornado的异步特性,了解详情可以参看Simple Chat Room。
自动安装
pip install tornado
Tornado在PyPI中有列举,可以通过使用pip或者easy_install。注意源代码中包含了示例应用可能不会出现在这种安装方式的源码中,因此你可以通过拷贝源码的手动安装的方式安装tornado。
手动安装:下载tornado-4.2.1.tar.gz
tar xvzf tornado-4.2.1.tar.gz
cd tornado-4.2.1
python setup.py build
sudo python setup.py install
前提条件:Tornado运行在Python 2.6,2.7,3.2,3.3,和3.4。所有的版本都依赖于certifi,在Python 2中这还依赖于backports.ssl_match_hostname。这些当你使用pip或者easy_install安装tornado时会自动安装。某些Tornado特性将要求下来可选的库:
ThreadedResolver
用法。这仅仅在Python2中需要;Python 3已经包括了这个标准库。tornado.curl_httpclient
中可选使用的。这要求Libcurl版本7.18.2或者更高;推荐使用版本7.21.1或者更高。tornado.platform.twisted
被使用。开发、部署环境:Tornado运行在所有类Unix的平台上,因为运行在Linux(带有epoll
)和BSD(带有kqueue
)能得到最好性能和可伸缩性是被推荐的生产部署环境(尽管Mac OS X是派生自BSD也支持kqueue,其网络性能是有瓶颈的,因此仅作为开发环境使用)。Tornado也将运行在Windows,因为其配置文件不被官方支持,仅推荐作为开发环境使用。