Tornado 2.2的新功能¶
2012年1月30日¶
集锦¶
更新和扩展了WebSocket支持。
改进了 Twisted / Tornado 桥的兼容性。
模板错误现在生成更好的堆栈跟踪。
更好的异常处理
tornado.gen.
安全修补程序¶
tornado.simple_httpclient现在在所有情况下都禁用sslv2。如果python解释器与openssl的1.0之前版本相链接,则以前允许使用sslv2。
向后不兼容的更改¶
tornado.process.fork_processes现在提出SystemExit如果所有子进程都完全退出而不是返回None. 旧的行为令人惊讶,并且与此函数的大多数文档化示例(没有检查返回值)不一致。在Python 2.6上,
tornado.simple_httpclient仅支持SSLv3。这是因为python 2.6没有公开一种既支持sslv3又支持tlsv1的方法,同时也不支持不安全的sslv2。tornado.websocket默认情况下不再支持旧的WebSocket协议的“草稿76”版本,尽管可以通过重写来启用此版本tornado.websocket.WebSocketHandler.allow_draft76.
tornado.httpclient¶
SimpleAsyncHTTPClientno longer hangs onHEADrequests, responses with no content, or emptyPOST/PUT响应主体。SimpleAsyncHTTPClient现在支持303和307重定向代码。tornado.curl_httpclient现在接受非整数超时。tornado.curl_httpclient现在支持使用空密码进行基本身份验证。
tornado.httpserver¶
HTTPServer具有xheaders=True将不再接受X-Real-IP头看起来不像有效的IP地址。HTTPServer现在对待Connection请求头不区分大小写。
tornado.ioloop and tornado.iostream¶
IOStream.write现在,当给定空字符串时,工作正常。IOStream.read_until(和read_until_regex)现在,当有大量缓冲数据时性能会更好,这提高了SimpleAsyncHTTPClient下载包含大量块的文件时。SSLIOStream现在工作正常的时候ssl_version设置为除SSLv23.空闲的
IOLoops一秒钟不再醒来几次。tornado.ioloop.PeriodicCallback停止并重复启动时不再触发重复回调。
tornado.template¶
模板代码中的异常现在将显示更好的堆栈跟踪,这些跟踪引用了原始模板文件中的行。
{{#和#}}现在可用于注释(与旧的不同{{% comment %}}指令,这些可以包装其他模板指令)。模板指令现在可以跨多行。
tornado.web¶
现在,如果给定的格式不正确,行为会更好
Cookie报头RequestHandler.redirect现在有一个status用于发送301和302以外的状态代码的参数。新方法
RequestHandler.on_finish可以覆盖以进行请求后处理(作为RequestHandler.prepare)StaticFileHandler现在输出Content-Length和Etag标题HEAD请求。StaticFileHandler现在具有可重写的get_version和parse_url_path子类中使用的方法。RequestHandler.static_url现在需要一个include_host参数(除了对RequestHandler.include_host属性)。
tornado.websocket¶
更新以支持在RFC6455中最终确定的最新版本的协议。
在所有支持的协议版本中修复了许多错误。
tornado.websocket默认情况下不再支持旧的WebSocket协议的“草稿76”版本,尽管可以通过重写来启用此版本tornado.websocket.WebSocketHandler.allow_draft76.WebSocketHandler.write_message现在接受binary发送二进制消息的参数。子协议(即
Sec-WebSocket-Protocol现在支持header);请参见WebSocketHandler.select_subprotocol详细信息的方法。.WebSocketHandler.get_websocket_scheme可用于选择适当的URL方案 (ws://或wss://)在以下情况下HTTPRequest.protocol设置不正确。
其他模块¶
tornado.auth.TwitterMixin.authenticate_redirect现在需要一个callback_uri参数。tornado.auth.TwitterMixin.twitter_request现在接受URL和部分路径(完整的URL对于遵循不同模式的搜索API很有用)。异常处理
tornado.gen已经改进了。现在可以捕获由Task.tornado.netutil.bind_sockets现在工作时getaddrinfo返回重复的地址。tornado.platform.twisted兼容性得到了显著改善。除了11.0.0外,现在还支持Twisted 11.1.0版。tornado.process.fork_processes正确重置random模块,即使在os.urandom未实现。tornado.testing.main支持新标志--exception_on_interrupt,可以设置为false以使Ctrl-C更可靠地终止进程(这样做时会牺牲堆栈跟踪)。tornado.version_info现在是一个四元组,因此可以将正式发布与开发分支区分开。