What’s new in Tornado 3.2

Jan 14, 2014

Installation

  • 现在,在Python 2上运行时,Tornado取决于backports.ssl_match_hostname .在使用pipeasy_install时将自动安装.

  • 龙卷风现在包括一个可选的C扩展模块,该模块大大提高了websocket的性能. 如果在安装时找到C编译器,则会自动构建此扩展.

New modules

  • tornado.platform.asyncio模块提供与集成asyncio在Python 3.4引入的模块(也可用于Python 3.3 pip install asyncio ).

tornado.auth

  • Added GoogleOAuth2Mixin support authentication to Google services with OAuth 2 instead of OpenID and OAuth 1.

  • FacebookGraphMixin已更新为使用当前的Facebook登录URL,该URL保存了重定向.

tornado.concurrent

  • TracebackFuture现在接受timeout关键字参数(尽管在非阻塞代码中使用非零超时仍然不正确).

tornado.curl_httpclient

  • tornado.curl_httpclient now works on Python 3 with the soon-to-be-released pycurl 7.19.3, which will officially support Python 3 for the first time. Note that there are some unofficial Python 3 ports of pycurl (Ubuntu has included one for its past several releases); these are not supported for use with Tornado.

tornado.escape

tornado.gen

  • 协程现在除了列表以并行等待多个任务外,现在还可以产生命令.

  • 生成已经完成的Future时, tornado.gen性能tornado.gen提高.

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现在可以更早地释放回调对象,从而减少空闲时的内存使用量.

  • 如果为根记录器或tornadotornado.application记录器定义了处理程序, IOLoop将不再调用logging.basicConfig (以前仅查看根记录器).

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_httpclientconnect_timeout应用于已排队且尚未启动的请求.

  • 在Python 2.6上, simple_httpclient现在使用TLSv1而不是SSLv3.

  • simple_httpclient现在在DNS解析期间强制执行连接超时.

  • 嵌入式ca-certificates.crt文件已使用当前的Mozilla CA列表更新.

tornado.web

  • 如果客户端请求的Range大于整个文件的Range ,则StaticFileHandler不再失败(Facebook具有执行此操作的搜寻器).

  • 现在, RequestHandler.on_connection_close可以在保持活动连接的后续请求上正常工作.

  • 新的应用程序设置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对象而不是元组).

  • 修复了当处理程序方法返回None或Future以外的值时的错误消息.

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

tornado.websocket

tornado.wsgi