Tornado 2.3 新特性¶

May 31, 2012¶

HTTP clients¶

  • tornado.httpclient.HTTPClient now supports the same constructorkeyword arguments as AsyncHTTPClient.
  • The max_clients keyword argument to AsyncHTTPClient.configure now works.
  • tornado.simple_httpclient now supports the OPTIONS and PATCHHTTP methods.
  • tornado.simple_httpclient is better about closing its socketsinstead of leaving them for garbage collection.
  • tornado.simple_httpclient correctly verifies SSL certificates forURLs containing IPv6 literals (This bug affected Python 2.5 and 2.6).
  • tornado.simple_httpclient no longer includes basic auth credentialsin the Host header when those credentials are extracted from the URL.
  • tornado.simple_httpclient no longer modifies the caller-supplied headerdictionary, which caused problems when following redirects.
  • tornado.curl_httpclient now supports client SSL certificates (usingthe same client_cert and client_key arguments astornado.simple_httpclient)

HTTP Server¶

  • HTTPServer now works correctly with paths starting with //
  • HTTPHeaders.copy (inherited from dict.copy) now works correctly.
  • HTTPConnection.address is now always the socket address, even for non-IPsockets. HTTPRequest.remote_ip is still always an IP-style address(fake data is used for non-IP sockets)
  • Extra data at the end of multipart form bodies is now ignored, which fixesa compatibility problem with an iOS HTTP client library.

IOLoop and IOStream¶

  • IOStream now has an error attribute that can be used to determinewhy a socket was closed.
  • tornado.iostream.IOStream.read_until and read_until_regex are muchfaster with large input.
  • IOStream.write performs better when given very large strings.
  • IOLoop.instance() is now thread-safe.

tornado.options¶

  • tornado.options options with multiple=True that are set more thanonce now overwrite rather than append. This makes it possible to overridevalues set in parse_config_file with parse_command_line.
  • tornado.options —help output is now prettier.
  • tornado.options.options now supports attribute assignment.

tornado.template¶

  • Template files containing non-ASCII (utf8) characters now work on Python 3regardless of the locale environment variables.
  • Templates now support else clauses intry/except/finally/else blocks.

tornado.web¶

  • tornado.web.RequestHandler now supports the PATCH HTTP method.Note that this means any existing methods named patch inRequestHandler subclasses will need to be renamed.
  • tornado.web.addslash and removeslash decorators now send permanentredirects (301) instead of temporary (302).
  • RequestHandler.flush now invokes its callback whether there was any datato flush or not.
  • Repeated calls to RequestHandler.set_cookie with the same name nowoverwrite the previous cookie instead of producing additional copies.
  • tornado.web.OutputTransform.transform_first_chunk now takes and returnsa status code in addition to the headers and chunk. This is abackwards-incompatible change to an interface that was never technicallyprivate, but was not included in the documentation and does not appearto have been used outside Tornado itself.
  • Fixed a bug on python versions before 2.6.5 when URLSpec regexesare constructed from unicode strings and keyword arguments are extracted.
  • The reverse_url function in the template namespace now comes fromthe RequestHandler rather than the Application. (Unless overridden,RequestHandler.reverse_url is just an alias for the Applicationmethod).
  • The Etag header is now returned on 304 responses to an If-None-Matchrequest, improving compatibility with some caches.
  • tornado.web will no longer produce responses with status code 304that also have entity headers such as Content-Length.

Other modules¶

原文:

https://tornado-zh-cn.readthedocs.io/zh_CN/latest/releases/v2.3.0.html