Tornado 4.0 发布,此版本值得关注的特性如下:
该tornado.web.stream_request_body装饰允许大文件上传与有限的内存使用情况。
在现在更快,在龙卷风本身广泛使用。更多的方法现在还包括期货,最iostreammethods和requesthandler.flush。
许多用户重写的方法现在可以返回一个未来的流量控制。
HTTP相关代码现在之间的龙卷风共享。HttpServer,tornado.simple_httpclient和tornado.wsgi模块,使得诸如块和GZIP编码更consistent.httpserver现在使用新的委托接口tornado.httputilin除了其老单的回调接口定义的功能支持。
新的模块tornado.tcpclient创建非阻塞的DNS,TCP连接的SSL握手,并对IPv6的支持。
向后兼容:
tornado.concurrent.future不再是线程安全的;useconcurrent.futures.future当线程安全性是需要的。
龙卷风现在取决于而不是捆绑自己的Mozilla复制certifipackage CA列表。这将自动安装到使用点或easy_install。
这个版本包括安全Cookie格式,首先介绍了版本3.2.1的变化,和XSRF令牌改变3.2.2版本。如果你是从较早版本的升级,看到这些版本的版本说明。
WebSocket连接从其它来源网站现在被默认。接受过原点的WebSocket连接,覆盖的新方法websockethandler.check_origin。
websockethandler不再支持旧的草案76协议(这主要影响X浏览器Safari 5。)。应用程序应该使用非WebSocket解决这些浏览器。
替代ioloop实现作者应该看到ioloop.add_handler本新闻稿中的变化。
该requesthandler.async_callback和websockethandler.async_callbackwrapper功能已被删除;他们已经过时,由于堆栈上下文很长时间(和最近的协程)。
curl_httpclient现在需要一个最小的版本,它7.18.2 7.21.1 libcurl。
支持requesthandler.get_error_html已被重写requesthandler.write_error代替。
git 库迁移到 https://github.com/tornadoweb/tornado
发行邮件列表
所有 Tornado 模块都可以在 Google App Engine 导入
更多内容请看这里。
Tornado web server 是使用Python编写出來的一个极轻量级、高可伸缩性和非阻塞IO的Web服务器软件,著名的 Friendfeed 网站就是使用它搭建的。
Tornado 跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务。
Tornado 主要分成四个部分:
Web 框架(包括 RequestHandler)
实现 HTTP 的客户端和服务器端 (HTTPServer 和 AsyncHTTPClient).
一个异步网络库 (IOLoop 和 IOStream)
一个协同程序库(tornado.gen)
一个最简单的服务器:
<pre style="color: #000000;">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.instance().start()</pre>