Skip to main content

Tornado 2.3中的新功能

2012年5月31日

HTTP客户端

  • tornado.httpclient.HTTPClient 现在支持与 AsyncHTTPClient 相同的构造函数关键字参数。

  • AsyncHTTPClient.configuremax_clients 关键字参数现在可以工作。

  • tornado.simple_httpclient 现在支持 OPTIONSPATCH HTTP方法。

  • tornado.simple_httpclient 更好地关闭它的套接字,而不是让它们进行垃圾收集。

  • tornado.simple_httpclient 正确地验证包含IPv6文字的URL的SSL证书(此错误会影响Python 2.5和2.6)。

  • 当从URL中提取这些凭据时,tornado.simple_httpclient 不再包括 Host 头中的基本认证凭据。

  • tornado.simple_httpclient 不再修改调用者提供的标头字典,这在后续重定向时会导致问题。

  • tornado.curl_httpclient 现在支持客户端SSL证书(使用与 tornado.simple_httpclient 相同的 client_certclient_key 参数)

HTTP服务器

  • HTTPServer 现在可以正确工作与从 // 开始的路径

  • HTTPHeaders.copy (继承自 dict.copy)现在可以正常工作。

  • HTTPConnection.address 现在总是套接字地址,即使是非IP套接字。 HTTPRequest.remote_ip 仍然是一个IP格式的地址(伪数据用于非IP套接字)

  • 多部分表单主体末尾的额外数据现在被忽略,这修复了与iOS HTTP客户端库的兼容性问题。

IOLoopIOStream

  • IOStream 现在有一个 error 属性,可用于确定套接字被关闭的原因。

  • tornado.iostream.IOStream.read_untilread_until_regex 的输入速度更快。

  • 给定非常大的字符串时,IOStream.write 执行得更好。

  • IOLoop.instance() 现在是线程安全的。

tornado.options

  • 已设置多个 multiple=Truetornado.options 选项现在覆盖而不是追加。这使得可以使用 parse_command_line 覆盖 parse_config_file 中设置的值。

  • tornado.options --help 输出现在更漂亮了。

  • tornado.options.options 现在支持属性分配。

tornado.template

  • 包含非ASCII(utf8)字符的模板文件现在可用于Python 3,而不考虑区域设置环境变量。

  • 模板现在支持 try/except/finally/else 块中的 else 子句。

tornado.web

  • tornado.web.RequestHandler 现在支持 PATCH HTTP方法。注意,这意味着 RequestHandler 子类中名为 patch 的任何现有方法都需要重命名。

  • tornado.web.addslashremoveslash 装饰器现在发送永久重定向(301)而不是临时(302)。

  • RequestHandler.flush 现在调用其回调,是否有任何数据要刷新或不刷新。

  • 对具有相同名称的 RequestHandler.set_cookie 的重复调用现在将覆盖以前的cookie,而不是生成其他副本。

  • tornado.web.OutputTransform.transform_first_chunk 现在采取并返回一个状态代码除了头和块。这是一个向后不兼容的更改,从未在技术上是私有的,但没有包含在文档中,似乎没有在Tornado本身使用。

  • 修复了在2.6.5之前的Python版本中的一个bug,当 URLSpec 正则表达式从unicode字符串构造并且提取关键字参数时。

  • 模板命名空间中的 reverse_url 函数现在来自 RequestHandler,而不是 Application。 (除非被覆盖,RequestHandler.reverse_url 只是 Application 方法的别名)。

  • Etag 头部现在在304对 If-None-Match 请求的响应上返回,提高与一些高速缓存的兼容性。

  • tornado.web 将不再产生还具有诸如 Content-Length 的实体头部的状态代码304的响应。

其他模块