Tornado 2.2的新功能¶
2012年1月30日¶
集锦¶
更新和扩展了WebSocket支持。
改进了 Twisted / Tornado 桥的兼容性。
模板错误现在生成更好的堆栈跟踪。
更好的异常处理
tornado.gen
.
安全修补程序¶
tornado.simple_httpclient
现在在所有情况下都禁用sslv2。如果python解释器与openssl的1.0之前版本相链接,则以前允许使用sslv2。
向后不兼容的更改¶
tornado.process.fork_processes
现在提出SystemExit
如果所有子进程都完全退出而不是返回None
. 旧的行为令人惊讶,并且与此函数的大多数文档化示例(没有检查返回值)不一致。在Python 2.6上,
tornado.simple_httpclient
仅支持SSLv3。这是因为python 2.6没有公开一种既支持sslv3又支持tlsv1的方法,同时也不支持不安全的sslv2。tornado.websocket
默认情况下不再支持旧的WebSocket协议的“草稿76”版本,尽管可以通过重写来启用此版本tornado.websocket.WebSocketHandler.allow_draft76
.
tornado.httpclient
¶
SimpleAsyncHTTPClient
no longer hangs onHEAD
requests, responses with no content, or emptyPOST
/PUT
响应主体。SimpleAsyncHTTPClient
现在支持303和307重定向代码。tornado.curl_httpclient
现在接受非整数超时。tornado.curl_httpclient
现在支持使用空密码进行基本身份验证。
tornado.httpserver
¶
HTTPServer
具有xheaders=True
将不再接受X-Real-IP
头看起来不像有效的IP地址。HTTPServer
现在对待Connection
请求头不区分大小写。
tornado.ioloop
and tornado.iostream
¶
IOStream.write
现在,当给定空字符串时,工作正常。IOStream.read_until
(和read_until_regex
)现在,当有大量缓冲数据时性能会更好,这提高了SimpleAsyncHTTPClient
下载包含大量块的文件时。SSLIOStream
现在工作正常的时候ssl_version
设置为除SSLv23
.空闲的
IOLoops
一秒钟不再醒来几次。tornado.ioloop.PeriodicCallback
停止并重复启动时不再触发重复回调。
tornado.template
¶
模板代码中的异常现在将显示更好的堆栈跟踪,这些跟踪引用了原始模板文件中的行。
{{#
和#}}
现在可用于注释(与旧的不同{{% comment %}}
指令,这些可以包装其他模板指令)。模板指令现在可以跨多行。
tornado.web
¶
现在,如果给定的格式不正确,行为会更好
Cookie
报头RequestHandler.redirect
现在有一个status
用于发送301和302以外的状态代码的参数。新方法
RequestHandler.on_finish
可以覆盖以进行请求后处理(作为RequestHandler.prepare
)StaticFileHandler
现在输出Content-Length
和Etag
标题HEAD
请求。StaticFileHandler
现在具有可重写的get_version
和parse_url_path
子类中使用的方法。RequestHandler.static_url
现在需要一个include_host
参数(除了对RequestHandler.include_host
属性)。
tornado.websocket
¶
更新以支持在RFC6455中最终确定的最新版本的协议。
在所有支持的协议版本中修复了许多错误。
tornado.websocket
默认情况下不再支持旧的WebSocket协议的“草稿76”版本,尽管可以通过重写来启用此版本tornado.websocket.WebSocketHandler.allow_draft76
.WebSocketHandler.write_message
现在接受binary
发送二进制消息的参数。子协议(即
Sec-WebSocket-Protocol
现在支持header);请参见WebSocketHandler.select_subprotocol
详细信息的方法。.WebSocketHandler.get_websocket_scheme
可用于选择适当的URL方案 (ws://
或wss://
)在以下情况下HTTPRequest.protocol
设置不正确。
其他模块¶
tornado.auth.TwitterMixin.authenticate_redirect
现在需要一个callback_uri
参数。tornado.auth.TwitterMixin.twitter_request
现在接受URL和部分路径(完整的URL对于遵循不同模式的搜索API很有用)。异常处理
tornado.gen
已经改进了。现在可以捕获由Task
.tornado.netutil.bind_sockets
现在工作时getaddrinfo
返回重复的地址。tornado.platform.twisted
兼容性得到了显著改善。除了11.0.0外,现在还支持Twisted 11.1.0版。tornado.process.fork_processes
正确重置random
模块,即使在os.urandom
未实现。tornado.testing.main
支持新标志--exception_on_interrupt
,可以设置为false以使Ctrl-C
更可靠地终止进程(这样做时会牺牲堆栈跟踪)。tornado.version_info
现在是一个四元组,因此可以将正式发布与开发分支区分开。