pdf文档 Tornado 6.0 Documentation

885.76 KB 245 页 0 评论
语言 格式 评分
英语
.pdf
3
摘要
文档介绍了Tornado 6.0版本的新特性、改进和问题修复。主要包括结束对Python 2.7和3.4的支持,移除被废弃的API,增加了类型注解,优化了内部协程的性能,并对多个子模块如auth、concurrent、gen、httpclient、iostream、log等进行了改进。此外,还修复了一些已知问题,如IOStream关闭时的错误处理,WebSocket的新特性支持,以及改进了日志输出和配置。
AI总结
以下是对《Tornado 6.0 Documentation》的中文总结,重点突出核心观点和关键信息,语言简洁明了: --- ### 《Tornado 6.0 Documentation》总结 #### 1. **概述** Tornado 6.0 是一个重要的升级版本,引入了多项新功能和改进,同时移除了部分旧的、已弃用的 API。以下是主要的内容总结: --- #### 2. **不兼容的更改** - **Python 支持**:Tornado 6.0 不再支持 Python 2.7 和 3.4,minimum supported Python version 为 3.5.2。 - **移除的 API**:Tornado 5.1 中弃用的 API 已被移除,包括 `tornado.stack_context` 模块和大部分回调参数。 - **回调参数**:大多数模块(如 `tornado.auth`、`tornado.concurrent`、`tornado.gen` 等)已移除回调参数,建议使用协程接口。 - **WebSocketHandler.get**:该方法现在是一个 coroutine,需在子类中正确调用。 - **IOLoop 接口**:部分旧方法(如 `IOLoop.set_blocking_signal_threshold` 和 `IOLoop.log_stack`)已移除。 --- #### 3. **重要改进** - **类型注解**:新增了与 mypy 兼容的类型注解,提高代码类型检查和 IDE 支持。 - **Native Coroutines**:内部使用 native coroutines,提升性能。 - **WebSocket 改进**: - 启用压缩时,内存限制适用于解压缩后的数据,防止 DoS 攻击。 - 支持子协议(`websocket_connect` 和 `selected_subprotocol`)。 - `WebSocketHandler.open` 可以是 coroutine。 - **HTTP 客户端**:`raise_error=False` 的行为已更改,仅抑制非 200 状态码的错误。 - **IOLoop 性能优化**:`IOLoop.add_callback` 使用无锁实现,提升性能。 - **日志系统**:日志文件使用 UTF-8 编码,支持 Windows 的彩色日志输出(需 `colorama` 库)。 --- #### 4. **Bug 修复** - **IOStream**:修复了在读取过程中关闭流时可能引发的 `StreamClosedError`。 - **WebSocketHandler.set_nodelay**:修复了功能失效问题。 - **HTTPResponse.body**:在错误响应中返回空字节串而非 `None`。 - **子协议支持**:修复了子协议相关问题。 - **memory leak**:修复了 IOLoop 对象创建和销毁时的内存泄漏。 - **PeriodicCallback**:修复了时间倒退导致的任务重复执行问题。 --- #### 5. **新功能** - **异步支持**:`Lock` 和 `Semaphore` 支持 `async with` 语句(Python 3.5+)。 - **日志轮转**:新增基于时间的日志轮转模式。 - **Queue 支持**:`Queue` 支持 `async for` 语句(Python 3.5+)。 - **模板改进**:模板Whitespace 处理更加灵活,支持非 ASCII 文件名。 - **测试功能**:`ExpectLog` 添加 `logged_stack` 属性,方便测试异常日志。 --- #### 6. **安装与兼容性** - **安装**:使用 `pip install tornado` 即可安装,推荐同时下载源代码以获取 demo 应用。 - **依赖**:支持以下可选包: - `pycurl`(需 libcurl 7.22+) - `Twisted`(通过 `tornado.platform.twisted`) - `pycares`(非阻塞 DNS 解析) - **平台支持**: - 推荐在 Linux(with epoll)和 BSD(with kqueue)上运行生产环境。 - Windows 支持,但仅限于开发用途,需手动设置事件循环策略(`WindowsSelectorEventLoopPolicy`)。 --- #### 7. **其他变化** - **HTTP/1.1 улучш**:修复了 `url_concat` 对片段和查询参数的处理问题。 - **网络工具**:`bind_sockets` 支持 `SO_REUSEPORT`。 - **TCP 客户端**:`TCPClient` 新增 `source_ip` 和 `source_port` 参数。 - **进程管理**:改进了 `Subprocess` 的错误处理。 - ** DNS 解析**:修复了 Solaris 上的 `LookupError` 问题。 - **CPU-count**:改进了 `cpu_count` 的错误处理。 --- 以上总结涵盖了 Tornado 6.0 的主要更新内容,重点突出了新功能、不兼容的更改、关键改进和 bug 修复。升级到 Tornado 6.0 时,需特别留意移除的 API 和回调参数的调整。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 238 页请下载阅读 -
文档评分
请文明评论,理性发言.