Tornado 4.1的新功能¶
2015年2月7日¶
集锦¶
如果A
Future
包含一个异常,但从不检查或重新引发该异常(例如,通过生成Future
)时,将记录堆栈跟踪Future
是垃圾收集。新班级
tornado.gen.WaitIterator
提供迭代的方法Futures
按照他们解决的顺序。这个
tornado.websocket
模块现在支持通过“permessage deflate”扩展进行压缩。重写WebSocketHandler.get_compression_options
在服务器端启用,并使用compression_options
关键字参数websocket_connect
在客户端。当安装了适当的软件包时,就有可能产生
asyncio.Future
或扭曲Defered
龙卷风中的物体。
向后兼容性说明¶
HTTPServer
现在电话start_request
使用正确的参数。此更改向后不兼容,影响实现的任何应用程序HTTPServerConnectionDelegate
以……为例Application
而不是记录的方法签名。
tornado.concurrent
¶
tornado.curl_httpclient
¶
tornado.curl_httpclient
现在支持请求主体PATCH
和自定义方法。tornado.curl_httpclient
现在支持在重定向方法后重新提交实体,而不是POST
.curl_httpclient
现在运行IOLoop上的流式和头回调。tornado.curl_httpclient
现在使用它自己的记录器进行调试输出,这样可以更容易地对其进行筛选。
tornado.gen
¶
新班级
tornado.gen.WaitIterator
提供迭代的方法Futures
按照他们解决的顺序。当
singledispatch
库可用(标准的python 3.4,可通过pip install singledispatch
在旧版本上),则convert_yielded
函数可用于使其他类型的对象在协程中可供使用。新功能
tornado.gen.sleep
是一个友好的协程模拟time.sleep
.gen.engine
现在正确地捕获堆栈回调的上下文。
tornado.httpclient
¶
tornado.httpclient.HTTPRequest
接受新参数raise_error=False
抑制非200响应代码引发错误的默认行为。
tornado.httpserver
¶
HTTPServer
现在电话start_request
使用正确的参数。此更改是向后不兼容的,会影响实现的任何应用程序HTTPServerConnectionDelegate
以……为例Application
而不是记录的方法签名。HTTPServer
现在可以容忍额外的换行符,这些换行符有时会插入保持活动连接的请求之间。HTTPServer
现在可以在请求块体后使用Keep-Alive连接。HTTPServer
现在总是报告HTTP/1.1
而不是回显请求版本。
tornado.httputil
¶
新功能
tornado.httputil.split_host_and_port
用于解析netloc
URL的一部分。这个
context
参数HTTPServerRequest
现在是可选的,如果提供了上下文,remote_ip
属性也是可选的。HTTPServerRequest.body
现在总是一个字节字符串(以前,python 3上的默认空体是unicode字符串)。当出现类似unicode的换行符时,头解析现在可以正常工作。
头解析再次支持CRLF和裸LF行分隔符。
畸形的
multipart/form-data
将始终安静地记录实体,而不是引发未处理的异常;以前的行为根据确切的错误而不一致。
tornado.ioloop
¶
这个
kqueue
和select
IOLoop实现现在正确地报告了可写性,修复了iostream中的流控制。当一个新的
IOLoop
如果没有当前实例,它将自动成为线程的“当前”。新方法
PeriodicCallback.is_running
可用于查看PeriodicCallback
已启动。
tornado.iostream
¶
IOStream.start_tls
现在使用server_hostname
用于证书验证的参数。SSLIOStream
在某些错误情况下将不再消耗100%的CPU。SSLIOStream
不再日志EBADF
握手过程中的错误,因为在某些模式下NMAP扫描会导致这些错误。
tornado.options
¶
parse_config_file
现在总是在python 3上将配置文件解码为utf8。tornado.options.define
更准确地找到定义选项的模块。
tornado.platform.asyncio
¶
现在有可能屈服
asyncio.Future
协程中的对象singledispatch
类库可用tornado.platform.asyncio
已导入。新方法
tornado.platform.asyncio.to_tornado_future
和to_asyncio_future
在两个库之间转换'Future
类。
tornado.platform.twisted
¶
现在有可能屈服
Deferred
协程中的对象singledispatch
类库可用tornado.platform.twisted
已导入。
tornado.tcpclient
¶
TCPClient
由于超时时间不正确,将不再引发异常。
tornado.tcpserver
¶
TCPServer
不再忽略它read_chunk_size
争论。
tornado.testing
¶
AsyncTestCase
更好地支持多个异常。以前它会默默地吞下除最后一个以外的所有东西;现在它会抬起第一个,记录下其余的一切。AsyncTestCase
现在打扫干净Subprocess
状态对tearDown
必要时。
tornado.web
¶
这个
asynchronous
装饰师现在明白了concurrent.futures.Future
除了tornado.concurrent.Future
.StaticFileHandler
如果发送文件时连接关闭,则不再记录堆栈跟踪。RequestHandler.send_error
现在支持reason
关键字参数,类似于tornado.web.HTTPError
.RequestHandler.locale
现在有了一个属性设置器。Application.add_handlers
主机名匹配现在可以正确地与ipv6文本匹配。的重定向
Application
default_host
现在设置与请求协议匹配,而不是将HTTPS重定向到HTTP。畸形的
_xsrf
现在忽略cookie而不是导致未捕获的异常。Application.start_request
现在的签名与HTTPServerConnectionDelegate.start_request
.
tornado.websocket
¶
这个
tornado.websocket
模块现在支持通过“permessage deflate”扩展进行压缩。重写WebSocketHandler.get_compression_options
在服务器端启用,并使用compression_options
关键字参数websocket_connect
在客户端。WebSocketHandler
连接关闭时不再记录堆栈跟踪。WebSocketHandler.open
现在接受*args, **kw
为了与…保持一致RequestHandler.get
以及相关方法。这个
Sec-WebSocket-Version
标题现在包含所有支持的版本。websocket_connect
现在有一个on_message_callback
用于回调样式的关键字参数不使用read_message()
.