Tornado 3.2的新功能

2014年1月14日

安装

  • 龙卷风现在取决于 backports.ssl_match_hostname 在python 2上运行时。使用时将自动安装 pipeasy_install

  • Tornado现在包括一个可选的C扩展模块,这大大提高了WebSockets的性能。如果在安装时找到C编译器,则将自动生成此扩展。

新模块

  • 这个 tornado.platform.asyncio 模块提供与 asyncio python 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

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 如果为根记录器或 tornadotornado.application 记录器(以前它只查看根记录器)。

tornado.iostream

  • IOStream 现在认识到 ECONNABORTED 更多地方的错误代码(这主要是Windows上的问题)。

  • IOStream 现在,如果在写缓冲区中有数据时连接关闭,则可以更早地释放内存。

  • PipeIOStream 现在处理 EAGAIN 错误代码正确。

  • SSLIOStream 现在,在不等待应用程序尝试对连接进行读写操作的情况下,自动启动SSL握手。

  • set_nodelay 当连接被重置时。

tornado.locale

tornado.log

tornado.netutil

  • is_valid_ip (因此) HTTPRequest.remote_ip )现在拒绝空字符串。

  • 同步使用 ThreadedResolver 在导入时解决unicode主机名不再死锁。

tornado.platform.twisted

tornado.process

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页。

  • 新应用程序设置 autoreloadcompiled_template_cachestatic_hash_cacheserve_traceback 可用于控制调试模式的各个方面。

  • 新方法 RequestHandler.get_query_argumentRequestHandler.get_body_argument 和新属性 HTTPRequest.query_argumentsHTTPRequest.body_arguments 允许访问参数,而不将查询字符串中的参数与请求正文中的参数混合在一起。

  • RequestHandler.decode_argument 和相关的方法现在提出 HTTPError(400) 而不是 UnicodeDecodeError 当参数无法解码时。

  • RequestHandler.clear_all_cookies 现在接受 domainpath 争论,就像 clear_cookie .

  • 现在可以在使用 tornado.web.URLSpec 班级。

  • Application 现在接受4个元组来指定 name 参数(之前需要构造 tornado.web.URLSpec 对象而不是元组)。

  • 修复了处理程序方法返回“无”或“将来”以外的值时出现的错误消息。

  • 当同时使用这两种方法时,将不再记录两次异常 @asynchronous@gen.coroutine

tornado.websocket

tornado.wsgi

  • WSGIContainer 现在调用iterable close() 方法,即使出现错误,也要符合规范。