Tornado 3.2的新功能¶
2014年1月14日¶
安装¶
龙卷风现在取决于 backports.ssl_match_hostname 在python 2上运行时。使用时将自动安装
pip
或easy_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
¶
xhtml_escape
现在也可以避开撇号。tornado.escape.utf8
,to_unicode
和native_str
现在提高TypeError
而不是AssertionError
当给定的值无效时。
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
如果为根记录器或tornado
或tornado.application
记录器(以前它只查看根记录器)。
tornado.iostream
¶
IOStream
现在认识到ECONNABORTED
更多地方的错误代码(这主要是Windows上的问题)。IOStream
现在,如果在写缓冲区中有数据时连接关闭,则可以更早地释放内存。PipeIOStream
现在处理EAGAIN
错误代码正确。SSLIOStream
现在,在不等待应用程序尝试对连接进行读写操作的情况下,自动启动SSL握手。从
set_nodelay
当连接被重置时。
tornado.locale
¶
Locale.format_date
不再强制使用俄语中的绝对日期。
tornado.log
¶
修正错误
tornado.log.enable_pretty_logging
什么时候?sys.stderr
没有isatty
方法。tornado.log.LogFormatter
现在接受关键字参数fmt
和datefmt
.
tornado.netutil
¶
is_valid_ip
(因此)HTTPRequest.remote_ip
)现在拒绝空字符串。同步使用
ThreadedResolver
在导入时解决unicode主机名不再死锁。
tornado.platform.twisted
¶
TwistedResolver
现在有更好的错误处理。
tornado.process
¶
Subprocess
不再泄漏文件描述符,如果subprocess.Popen
失败。
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页。新应用程序设置
autoreload
,compiled_template_cache
,static_hash_cache
和serve_traceback
可用于控制调试模式的各个方面。新方法
RequestHandler.get_query_argument
和RequestHandler.get_body_argument
和新属性HTTPRequest.query_arguments
和HTTPRequest.body_arguments
允许访问参数,而不将查询字符串中的参数与请求正文中的参数混合在一起。RequestHandler.decode_argument
和相关的方法现在提出HTTPError(400)
而不是UnicodeDecodeError
当参数无法解码时。RequestHandler.clear_all_cookies
现在接受domain
和path
争论,就像clear_cookie
.现在可以在使用
tornado.web.URLSpec
班级。Application
现在接受4个元组来指定name
参数(之前需要构造tornado.web.URLSpec
对象而不是元组)。修复了处理程序方法返回“无”或“将来”以外的值时出现的错误消息。
当同时使用这两种方法时,将不再记录两次异常
@asynchronous
和@gen.coroutine
tornado.websocket
¶
WebSocketHandler.write_message
现在提出WebSocketClosedError
而不是AttributeError
当连接已关闭时。websocket_connect
现在接受预构造HTTPRequest
物体。修复错误
WebSocketHandler
当与一些无条件修改Connection
标题。websocket_connect
现在,对于被拒绝的连接立即返回一个错误,而不是等待超时。WebSocketClientConnection
现在有一个close
方法。
tornado.wsgi
¶
WSGIContainer
现在调用iterableclose()
方法,即使出现错误,也要符合规范。