Tornado 3.2的新功能¶
2014年1月14日¶
安装¶
龙卷风现在取决于 backports.ssl_match_hostname 在python 2上运行时。使用时将自动安装
pip或easy_installTornado现在包括一个可选的C扩展模块,这大大提高了WebSockets的性能。如果在安装时找到C编译器,则将自动生成此扩展。
新模块¶
这个
tornado.platform.asyncio模块提供与asynciopython 3.4中引入的模块(也可用于python 3.3和pip install asyncio)
tornado.auth¶
补充
GoogleOAuth2Mixin支持使用OAuth 2而不是OpenID和OAuth 1对Google服务进行身份验证。FacebookGraphMixin已更新为使用当前Facebook登录URL,这将保存重定向。
tornado.concurrent¶
TracebackFuture现在接受timeout关键字参数(尽管在非阻塞代码中使用非零超时仍然不正确)。
tornado.curl_httpclient¶
tornado.curl_httpclient现在使用的是即将发布的pycurl 7.19.3,它将首次正式支持python 3。请注意,pycurl有一些非官方的python 3端口(Ubuntu在过去的几个版本中都包含了一个);这些端口不支持与tornado一起使用。
tornado.escape¶
xhtml_escape现在也可以避开撇号。tornado.escape.utf8,to_unicode和native_str现在提高TypeError而不是AssertionError当给定的值无效时。
tornado.gen¶
协同程序现在可以在列表之外生成dict,以并行等待多个任务。
改进的性能
tornado.gen屈服时Future已经完成了。
tornado.httpclient¶
tornado.httpclient.HTTPRequest现在使用属性设置器,以便在构造后设置属性应用与__init__(例如,将body属性转换为字节)。
tornado.httpserver¶
畸形的
x-www-form-urlencoded请求主体现在将记录一个警告并继续,而不是导致请求失败(类似于对格式错误的现有处理multipart/form-data身体。这主要是因为有些库在默认情况下发送此内容类型,即使数据不是表单编码的。修复Unix套接字(和其他非IP套接字)的一些错误消息
tornado.ioloop¶
IOLoop现在使用IOLoop.handle_callback_exception始终用于错误日志记录。IOLoop现在提前释放回调对象,减少空闲时的内存使用。IOLoop不会再打电话了logging.basicConfig如果为根记录器或tornado或tornado.application记录器(以前它只查看根记录器)。
tornado.iostream¶
IOStream现在认识到ECONNABORTED更多地方的错误代码(这主要是Windows上的问题)。IOStream现在,如果在写缓冲区中有数据时连接关闭,则可以更早地释放内存。PipeIOStream现在处理EAGAIN错误代码正确。SSLIOStream现在,在不等待应用程序尝试对连接进行读写操作的情况下,自动启动SSL握手。从
set_nodelay当连接被重置时。
tornado.locale¶
Locale.format_date不再强制使用俄语中的绝对日期。
tornado.log¶
修正错误
tornado.log.enable_pretty_logging什么时候?sys.stderr没有isatty方法。tornado.log.LogFormatter现在接受关键字参数fmt和datefmt.
tornado.netutil¶
is_valid_ip(因此)HTTPRequest.remote_ip)现在拒绝空字符串。同步使用
ThreadedResolver在导入时解决unicode主机名不再死锁。
tornado.platform.twisted¶
TwistedResolver现在有更好的错误处理。
tornado.process¶
Subprocess不再泄漏文件描述符,如果subprocess.Popen失败。
tornado.simple_httpclient¶
simple_httpclient现在应用connect_timeout到排队但尚未启动的请求。在Python 2.6上,
simple_httpclient现在使用tlsv1而不是sslv3。simple_httpclient现在在DNS解析期间强制连接超时。嵌入式
ca-certificates.crt文件已用当前Mozilla CA列表更新。
tornado.web¶
StaticFileHandler如果客户端请求Range这比整个文件都大(Facebook有一个爬虫可以做到这一点)。RequestHandler.on_connection_close现在可以正确地处理Keep-Alive连接的后续请求。新建应用程序设置
default_handler_class可用于轻松设置自定义404页。新应用程序设置
autoreload,compiled_template_cache,static_hash_cache和serve_traceback可用于控制调试模式的各个方面。新方法
RequestHandler.get_query_argument和RequestHandler.get_body_argument和新属性HTTPRequest.query_arguments和HTTPRequest.body_arguments允许访问参数,而不将查询字符串中的参数与请求正文中的参数混合在一起。RequestHandler.decode_argument和相关的方法现在提出HTTPError(400)而不是UnicodeDecodeError当参数无法解码时。RequestHandler.clear_all_cookies现在接受domain和path争论,就像clear_cookie.现在可以在使用
tornado.web.URLSpec班级。Application现在接受4个元组来指定name参数(之前需要构造tornado.web.URLSpec对象而不是元组)。修复了处理程序方法返回“无”或“将来”以外的值时出现的错误消息。
当同时使用这两种方法时,将不再记录两次异常
@asynchronous和@gen.coroutine
tornado.websocket¶
WebSocketHandler.write_message现在提出WebSocketClosedError而不是AttributeError当连接已关闭时。websocket_connect现在接受预构造HTTPRequest物体。修复错误
WebSocketHandler当与一些无条件修改Connection标题。websocket_connect现在,对于被拒绝的连接立即返回一个错误,而不是等待超时。WebSocketClientConnection现在有一个close方法。
tornado.wsgi¶
WSGIContainer现在调用iterableclose()方法,即使出现错误,也要符合规范。