Tornado 2.3的新功能

2012年5月31日

HTTP客户端

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

  • 这个 max_clients 关键字参数 AsyncHTTPClient.configure 现在工作。

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

  • 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_certclient_key 论证为 tornado.simple_httpclient

HTTP服务器

  • HTTPServer now 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_untilread_until_regex 输入量大,速度快得多。

  • IOStream.write 当给定非常大的字符串时,性能更好。

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

tornado.options

tornado.template

  • 包含非ascii(utf8)字符的模板文件现在可以在python 3上工作,而不考虑语言环境变量。

  • 模板现在支持 else clauses in try/except /最后是`/ else``块。

tornado.web

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

  • tornado.web.addslashremoveslash 装饰师现在发送永久重定向(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 .

其他模块