What’s new in Tornado 2.3

May 31, 2012

HTTP clients

  • 现在, 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 Server

  • HTTPServer现在可以正确使用以//开头的路径

  • 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 performs better when given very large strings.

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

tornado.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版本上的错误,该错误是从unicode字符串构造tornado.web.URLSpec表达式并提取关键字参数的.

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

  • 现在,在对If-None-Match请求的304个响应上返回Etag标头,从而改善了与某些缓存的兼容性.

  • tornado.web将不再产生状态码304的响应,该响应也具有诸如Content-Length实体头.

Other modules