| What's new in Tornado 2.0 |
| ========================= |
| |
| Jun 21, 2011 |
| ------------ |
| |
| :: |
| |
| Major changes: |
| * Template output is automatically escaped by default; see backwards |
| compatibility note below. |
| * The default AsyncHTTPClient implementation is now simple_httpclient. |
| * Python 3.2 is now supported. |
| |
| Backwards compatibility: |
| * Template autoescaping is enabled by default. Applications upgrading from |
| a previous release of Tornado must either disable autoescaping or adapt |
| their templates to work with it. For most applications, the simplest |
| way to do this is to pass autoescape=None to the Application constructor. |
| Note that this affects certain built-in methods, e.g. xsrf_form_html |
| and linkify, which must now be called with {% raw %} instead of {} |
| * Applications that wish to continue using curl_httpclient instead of |
| simple_httpclient may do so by calling |
| AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient") |
| at the beginning of the process. Users of Python 2.5 will probably want |
| to use curl_httpclient as simple_httpclient only supports ssl on Python 2.6+. |
| * Python 3 compatibility involved many changes throughout the codebase, |
| so users are encouraged to test their applications more thoroughly than |
| usual when upgrading to this release. |
| |
| Other changes in this release: |
| * Templates support several new directives: |
| - {% autoescape ...%} to control escaping behavior |
| - {% raw ... %} for unescaped output |
| - {% module ... %} for calling UIModules |
| * {% module Template(path, **kwargs) %} may now be used to call another |
| template with an independent namespace |
| * All IOStream callbacks are now run directly on the IOLoop via add_callback. |
| * HTTPServer now supports IPv6 where available. To disable, pass |
| family=socket.AF_INET to HTTPServer.bind(). |
| * HTTPClient now supports IPv6, configurable via allow_ipv6=bool on the |
| HTTPRequest. allow_ipv6 defaults to false on simple_httpclient and true |
| on curl_httpclient. |
| * RequestHandlers can use an encoding other than utf-8 for query parameters |
| by overriding decode_argument() |
| * Performance improvements, especially for applications that use a lot of |
| IOLoop timeouts |
| * HTTP OPTIONS method no longer requires an XSRF token. |
| * JSON output (RequestHandler.write(dict)) now sets Content-Type to |
| application/json |
| * Etag computation can now be customized or disabled by overriding |
| RequestHandler.compute_etag |
| * USE_SIMPLE_HTTPCLIENT environment variable is no longer supported. |
| Use AsyncHTTPClient.configure instead. |