Skip to main content

Tornado 4.1的新功能

2015年2月7日

强调

向后兼容性说明

tornado.concurrent

  • 如果 Future 包含异常,但该异常从未被检查或重新产生(例如通过产生 Future),则当 Future 被垃圾收集时将记录堆栈跟踪。

  • Future 现在捕获和记录其回调中的异常。

tornado.curl_httpclient

  • tornado.curl_httpclient 现在支持 PATCH 和自定义方法的请求主体。

  • tornado.curl_httpclient 现在支持针对除 POST 之外的方法的重定向后重新提交主体。

  • curl_httpclient 现在在IOLoop上运行流和头回调。

  • tornado.curl_httpclient 现在使用自己的记录器用于调试输出,因此可以更容易地过滤。

tornado.gen

tornado.httpclient

tornado.httpserver

  • HTTPServer 现在使用正确的参数调用 start_request。此更改是向后不兼容的,通过遵循 Application 的示例而不是记录的方法签名来实现 HTTPServerConnectionDelegate 的任何应用程序。

  • HTTPServer 现在可以容忍额外的换行符,这些换行符有时在保持连接的请求之间插入。

  • HTTPServer 现在可以在使用块化主体的请求后使用保持活动连接。

  • HTTPServer 现在总是报告 HTTP/1.1,而不是回应请求版本。

tornado.httputil

  • 新功能 tornado.httputil.split_host_and_port 用于解析URL的 netloc 部分。

  • HTTPServerRequestcontext 参数现在是可选的,如果提供了上下文,则 remote_ip 属性也是可选的。

  • HTTPServerRequest.body 现在总是一个字节字符串(以前默认的空体将是一个unicode字符串在python 3)。

  • 当存在类似于换行符的Unicode字符时,头解析现在可以正常工作。

  • 头解析再次支持CRLF和裸LF行分隔符。

  • 格式不正确的 multipart/form-data 机构将始终安静地记录,而不是提出未处理的异常;以前的行为是不一致的,取决于具体的错误。

tornado.ioloop

  • kqueueselect IOLoop实现现在正确地报告可写性,修复IOStream中的流控制。

  • 当创建一个新的 IOLoop 时,如果还没有当前实例,它将自动变为线程的“当前”。

  • 新方法 PeriodicCallback.is_running 可用于查看 PeriodicCallback 是否已启动。

tornado.iostream

  • IOStream.start_tls 现在使用 server_hostname 参数进行证书验证。

  • 在某些错误条件之后,SSLIOStream 将不再消耗100%的CPU。

  • SSLIOStream 在握手期间不再记录 EBADF 错误,因为它们可能由某些模式中的nmap扫描产生。

tornado.options

tornado.platform.asyncio

tornado.platform.twisted

  • singledispatch 库可用并且已导入 tornado.platform.twisted 时,现在可以在协同程序中生成 Deferred 对象。

tornado.tcpclient

  • TCPClient 将不会由于不正确的超时而引发异常。

tornado.tcpserver

  • TCPServer 不再忽略其 read_chunk_size 参数。

tornado.testing

  • AsyncTestCase 更好地支持多个异常。以前,它会默默吞下除了最后一个;现在它提出了第一个和日志所有的休息。

  • AsyncTestCase 现在在必要时清除 tearDown 上的 Subprocess 状态。

tornado.web

tornado.websocket