Tornado 2.3的新功能¶
2012年5月31日¶
HTTP客户端¶
tornado.httpclient.HTTPClient现在支持的构造函数关键字参数与AsyncHTTPClient.这个
max_clients关键字参数AsyncHTTPClient.configure现在工作。tornado.simple_httpclient现在支持OPTIONS和PATCHHTTP方法。tornado.simple_httpclient最好是关闭其套接字,而不是将它们留给垃圾收集。tornado.simple_httpclient正确验证包含ipv6文本的URL的SSL证书(此错误影响了python 2.5和2.6)。tornado.simple_httpclient不再在中包含基本身份验证凭据Host从URL提取这些凭据时的头。tornado.simple_httpclient不再修改调用者提供的头字典,这会在执行重定向时导致问题。tornado.curl_httpclient现在支持客户端SSL证书(使用相同的client_cert和client_key论证为tornado.simple_httpclient)
HTTP服务器¶
HTTPServernow works correctly with paths starting with//HTTPHeaders.copy(继承)dict.copy)现在工作正常。HTTPConnection.address现在总是套接字地址,即使对于非IP套接字也是如此。HTTPRequest.remote_ip仍然是一个IP样式的地址(假数据用于非IP套接字)多部分表单主体末尾的额外数据现在被忽略,这修复了与IOS HTTP客户端库的兼容性问题。
IOLoop and IOStream¶
IOStream现在有一个error可用于确定套接字关闭原因的属性。tornado.iostream.IOStream.read_until和read_until_regex输入量大,速度快得多。IOStream.write当给定非常大的字符串时,性能更好。IOLoop.instance()现在是线程安全的。
tornado.options¶
tornado.options选项与multiple=True设置了多次,现在覆盖而不是追加。这样就可以覆盖parse_config_file具有parse_command_line.tornado.options--help现在输出更漂亮了。tornado.options.options现在支持属性分配。
tornado.template¶
包含非ascii(utf8)字符的模板文件现在可以在python 3上工作,而不考虑语言环境变量。
模板现在支持
elseclauses intry/except/最后是`/else``块。
tornado.web¶
tornado.web.RequestHandler现在支持PATCHHTTP方法。请注意,这意味着任何现有的名为patch在里面RequestHandler需要重命名子类。tornado.web.addslash和removeslash装饰师现在发送永久重定向(301)而不是临时重定向(302)。RequestHandler.flush现在调用它的回调,不管是否有数据要刷新。重复呼叫
RequestHandler.set_cookie使用相同的名称现在覆盖以前的cookie,而不是生成其他副本。tornado.web.OutputTransform.transform_first_chunk现在获取并返回一个状态代码以及头和块。这是对接口的向后不兼容更改,该接口在技术上从未是私有的,但没有包含在文档中,并且似乎没有在Tornado本身之外使用。修正了2.6.5之前的python版本的错误
tornado.web.URLSpec正则表达式由Unicode字符串构造,并提取关键字参数。这个
reverse_url模板命名空间中的函数现在来自RequestHandler而不是Application. (除非被重写,RequestHandler.reverse_url只是Application方法)。这个
Etag现在在对If-None-Match请求,提高与某些缓存的兼容性。tornado.web将不再生成状态代码为304且具有实体头的响应,例如Content-Length.
其他模块¶
tornado.auth.FacebookGraphMixin不再发送post_args在URL中冗余。这个
extra_params参数tornado.escape.linkify现在可以是可调用的,以允许为每个链接分别选择参数。tornado.gen不再泄漏StackContexts当A@gen.engine重复调用包装函数。tornado.locale.get_supported_locales不再需要一个无意义的cls争论。StackContext实例现在有一个停用回调,可以用来防止进一步传播。tornado.testing.AsyncTestCase.wait现在在每次调用时重置超时。tornado.wsgi.WSGIApplication现在在python 3上正确解析参数。python 3上的异常处理已经得到了改进;以前的一些异常如
UnicodeDecodeError将生成TypeErrors