- Tornado 3.2 新特性¶
- Jan 14, 2014¶
- Installation¶
- New modules¶
- tornado.auth¶
- tornado.concurrent¶
- tornado.curl_httpclient¶
- tornado.escape¶
- tornado.gen¶
- tornado.httpclient¶
- tornado.httpserver¶
- tornado.ioloop¶
- tornado.iostream¶
- tornado.locale¶
- tornado.log¶
- tornado.netutil¶
- tornado.platform.twisted¶
- tornado.process¶
- tornado.simple_httpclient¶
- tornado.web¶
- tornado.websocket¶
- tornado.wsgi¶
- Jan 14, 2014¶
Tornado 3.2 新特性¶
Jan 14, 2014¶
Installation¶
- Tornado now depends on the backports.ssl_match_hostname whenrunning on Python 2. This will be installed automatically when using pipor easy_install
- Tornado now includes an optional C extension module, which greatly improvesperformance of websockets. This extension will be built automaticallyif a C compiler is found at install time.
New modules¶
- The tornado.platform.asyncio module provides integration with theasyncio module introduced in Python 3.4 (also available for Python3.3 with pip install asyncio).
tornado.auth¶
- Added GoogleOAuth2Mixin support authentication to Google serviceswith OAuth 2 instead of OpenID and OAuth 1.
- FacebookGraphMixin has been updated to use the current Facebook loginURL, which saves a redirect.
tornado.concurrent¶
- TracebackFuture now accepts a timeout keyword argument (althoughit is still incorrect to use a non-zero timeout in non-blocking code).
tornado.curl_httpclient¶
- tornado.curl_httpclient now works on Python 3 with thesoon-to-be-released pycurl 7.19.3, which will officially supportPython 3 for the first time. Note that there are some unofficialPython 3 ports of pycurl (Ubuntu has included one for its pastseveral releases); these are not supported for use with Tornado.
tornado.escape¶
- xhtml_escape now escapes apostrophes as well.
- tornado.escape.utf8, to_unicode, and native_str now raiseTypeError instead of AssertionError when given an invalid value.
tornado.gen¶
- Coroutines may now yield dicts in addition to lists to wait formultiple tasks in parallel.
- Improved performance of tornado.gen when yielding a Future that isalready done.
tornado.httpclient¶
- tornado.httpclient.HTTPRequest now uses property setters so thatsetting attributes after construction applies the same conversionsas init (e.g. converting the body attribute to bytes).
tornado.httpserver¶
- Malformed x-www-form-urlencoded request bodies will now log a warningand continue instead of causing the request to fail (similar to the existinghandling of malformed multipart/form-data bodies. This is done mainlybecause some libraries send this content type by default even when the datais not form-encoded.
- Fix some error messages for unix sockets (and other non-IP sockets)
tornado.ioloop¶
- IOLoop now uses handle_callback_exception consistently forerror logging.
- IOLoop now frees callback objects earlier, reducing memory usagewhile idle.
- IOLoop will no longer call logging.basicConfig if there is a handlerdefined for the root logger or for the tornado or tornado.applicationloggers (previously it only looked at the root logger).
tornado.iostream¶
- IOStream now recognizes ECONNABORTED error codes in more places(which was mainly an issue on Windows).
- IOStream now frees memory earlier if a connection is closed whilethere is data in the write buffer.
- PipeIOStream now handles EAGAIN error codes correctly.
- SSLIOStream now initiates the SSL handshake automatically withoutwaiting for the application to try and read or write to the connection.
- Swallow a spurious exception from set_nodelay when a connectionhas been reset.
tornado.locale¶
- Locale.format_date no longer forces the use of absolutedates in Russian.
tornado.log¶
- Fix an error from tornado.log.enable_pretty_logging whensys.stderr does not have an isatty method.
- tornado.log.LogFormatter now accepts keyword arguments fmtand datefmt.
tornado.netutil¶
- is_valid_ip (and therefore HTTPRequest.remote_ip) now rejectsempty strings.
- Synchronously using ThreadedResolver at import time to resolvea unicode hostname no longer deadlocks.
tornado.platform.twisted¶
- TwistedResolver now has better error handling.
tornado.process¶
- Subprocess no longer leaks file descriptors if subprocess.Popen fails.
tornado.simple_httpclient¶
- simple_httpclient now applies the connect_timeout to requeststhat are queued and have not yet started.
- On Python 2.6, simple_httpclient now uses TLSv1 instead of SSLv3.
- simple_httpclient now enforces the connect timeout during DNS resolution.
- The embedded ca-certificates.crt file has been updated with the currentMozilla CA list.
tornado.web¶
- StaticFileHandler no longer fails if the client requests a Range thatis larger than the entire file (Facebook has a crawler that does this).
- RequestHandler.on_connection_close now works correctly on subsequentrequests of a keep-alive connection.
- New application setting default_handler_class can be used to easilyset up custom 404 pages.
- New application settings autoreload, compiled_template_cache,static_hash_cache, and serve_traceback can be used to controlindividual aspects of debug mode.
- New methods RequestHandler.get_query_argument andRequestHandler.get_body_argument and new attributesHTTPRequest.query_arguments and HTTPRequest.body_arguments allow accessto arguments without intermingling those from the query string with thosefrom the request body.
- RequestHandler.decode_argument and related methods now raisean HTTPError(400) instead of UnicodeDecodeError when theargument could not be decoded.
- RequestHandler.clear_all_cookies now accepts domain and patharguments, just like clear_cookie.
- It is now possible to specify handlers by name when using the URLSpecclass.
- Application now accepts 4-tuples to specify the name parameter(which previously required constructing a URLSpec object instead ofa tuple).
- Fixed an incorrect error message when handler methods return a valueother than None or a Future.
- Exceptions will no longer be logged twice when using both @asynchronousand @gen.coroutine
tornado.websocket¶
- WebSocketHandler.write_message now raises WebSocketClosedError insteadof AttributeError when the connection has been closed.
- websocket_connect now accepts preconstructed HTTPRequest objects.
- Fix a bug with WebSocketHandler when used with some proxies thatunconditionally modify the Connection header.
- websocket_connect now returns an error immediately for refused connectionsinstead of waiting for the timeout.
- WebSocketClientConnection now has a close method.
tornado.wsgi¶
- WSGIContainer now calls the iterable’s close() method even ifan error is raised, in compliance with the spec.
原文:
https://tornado-zh-cn.readthedocs.io/zh_CN/latest/releases/v3.2.0.html