Tornado 6.0的新功能

2019年3月1日

向后不兼容的更改

  • 不再支持python 2.7和3.4;支持的最低python版本为3.5.2。

  • Tornado 5.1中不推荐使用的API已被删除。这包括 tornado.stack_context 模块与多数 callback 整个包中的参数。所有删除的API都已发出 DeprecationWarning 当在Tornado 5.1中使用时,使用 -Wd python命令行标志或环境变量 PYTHONWARNINGS=d 应该告诉您您的应用程序是否准备好移动到Tornado 6.0。

  • .WebSocketHandler.get 现在是协程,必须在重写此方法的任何子类中相应地调用(但请注意,重写 get 不推荐;或者 prepareopen 应改为使用)。

一般变化

  • Tornado现在包含与 mypy . 这些注释将在使用 mypy 可以在编辑器和其他工具中使用。

  • Tornado现在在内部使用本地协同程序,提高了性能。

tornado.auth

  • 所有 callback 已删除此包中的参数。而是使用协程接口。

  • 这个 OAuthMixin._oauth_get_user 方法已被删除。重写 _oauth_get_user_future 相反。

tornado.concurrent

  • 这个 callback 参数 run_on_executor 已删除。

  • return_future 已删除。

tornado.gen

  • 此模块的某些旧部分已被删除。这包括 engineYieldPointCallbackWaitWaitAllMultiYieldPointTask .

  • 功能装饰 @gen.coroutine 不再接受 callback 争论。

tornado.httpclient

  • 行为 raise_error=False 改变了。现在只抑制由已完成的带有非200状态代码的响应引起的错误(以前它抑制了所有错误)。

  • 这个 callback 参数 AsyncHTTPClient.fetch 已删除。

tornado.httputil

  • HTTPServerRequest.write 已删除。使用的方法 request.connection 相反。

  • 未被承认的 Content-Encoding 值现在只记录我们试图分析的内容类型的警告。

tornado.ioloop

  • IOLoop.set_blocking_signal_thresholdIOLoop.set_blocking_log_thresholdIOLoop.log_stackIOLoop.handle_callback_exception 已被删除。

  • 改进的性能 IOLoop.add_callback .

tornado.iostream

tornado.log

  • 此模块打开的日志文件现在显式设置为UTF-8编码。

tornado.netutil

  • 结果 getaddrinfo 现在按地址族排序,以避免部分失败和死锁。

tornado.platform.twisted

  • TornadoReactorTwistedIOLoop 已被删除。

tornado.simple_httpclient

  • 默认HTTP客户端现在支持 network_interface 请求参数以指定连接的源IP。

  • 如果服务器返回3xx响应代码而没有 Location 头,直接引发或返回响应,而不是尝试或未能遵循重定向。

  • 当跟踪重定向时,除 POST 将不再转化为 GET 请求。301(永久)重定向现在的处理方式与302(临时)和303(参见其他)重定向在这方面的处理方式相同。

  • 以下重定向现在可用于 body_producer .

tornado.stack_context

  • 这个 tornado.stack_context 模块已移除。

tornado.tcpserver

tornado.testing

  • AsyncHTTPTestCase 现在将所有引用放到 Application 在期间 tearDown 允许更快地回收内存。

  • AsyncTestCase 现在取消所有待定协同程序 tearDown 为了减少来自python运行时关于协同程序的警告,这些协同程序没有被等待。注意这可能导致 asyncio.CancelledError 在其他地方登录。期望在测试关闭时运行的协程可能需要捕获这个异常。

tornado.web

  • 这个 asynchronous 装饰器已被移除。

  • 这个 callback 参数 RequestHandler.flush 已删除。

  • StaticFileHandler 现在支持 Range 并返回一个适当的错误 end > start .

  • 现在可以设置 expires_days 在里面 xsrf_cookie_kwargs .

tornado.websocket

  • 连接关闭时发送的ping和其他消息现在会自动删除,而不是记录异常。

  • 由引发的错误 open() 当此方法是协程时,现在可以正确捕获。

tornado.wsgi

  • WSGIApplicationWSGIAdapter 已被删除。