搜索

pdf文档 Tornado 6.3 Documentation

1.06 MB 264 页 0 下载 140 浏览 0 评论 0 收藏
语言 格式 评分
英语
.pdf
3
摘要
Tornado 是一个高性能的 Python Web 框架和异步网络库,支持长轮询和 WebSocket 等实时功能。文档介绍了 Tornado 6.3.3 的更新内容,包括对 Python 3.5 的不再支持、对 Windows 平台的改进兼容性、新的二进制轮子支持以及多项功能增强和性能优化。更新内容涵盖 HTTP 服务器、IOLoop、模板系统、WebSocket 和其他模块的改进。
AI总结
### Tornado 6.3 文档总结 #### 1. 概述 Tornado 是一个 Python Web 框架和异步网络库,最初由 FriendFeed 开发。它通过非阻塞 I/O 实现高效的长轮询、WebSocket 等需要长时间连接的应用,适合高并发场景。 Tornado 的核心组件包括: - **Web 框架**:通过继承 `RequestHandler` 创建 Web 应用,并提供支持类。 - **HTTP 服务器和客户端**:实现客户端和服务器端的 HTTP 协议。 - **异步网络库**:基于 `IOLoop` 和 `IOStream` 提供异步网络功能,可构建其他协议。 Tornado 提供完整的全栈 Web 解决方案,与 WSGI 兼容,但建议结合 Tornado 的 Web 框架和 HTTP 服务器使用以充分发挥其性能。 --- #### 2. 异步与非阻塞 I/O Tornado 使用单线程事件循环实现异步处理,避免了传统同步服务器为每个用户分配一个线程的高资源消耗。所有应用代码应尽量异步化,以适应单线程模型。 **关键术语**: - **异步**:任务之间可以交错执行,但不一定非阻塞。 - **非阻塞**:操作不会阻塞事件循环,允许同时处理多个任务。 --- #### 3. 主要功能更新(6.3 版本) - **HTTP 服务器**: - 支持路径以 `//` 开头。 - `HTTPHeaders.copy` 和 `HTTPConnection.address` 修复。 - 忽略多部分表单末尾的额外数据,解决与 iOS 客户端的兼容性问题。 - **IOLoop 和 IOStream**: - `IOStream` 增加 `error` 属性,用于判断 socket 关闭原因。 - `IOStream.read_until` 和 `read_until_regex` 性能提升。 - `IOStream.write` 对大字符串性能优化。 - `IOLoop.instance()` 线程安全。 - **tornado.options**: - 多次设置 `multiple=True` 选项时,覆盖旧值。 - 支持属性赋值,`--help` 输出美化。 - **tornado.template**: - 支持非 ASCII 字符(UTF-8),在 Python 3 中与环境变量无关。 - 模板支持 `else` 子句。 - **tornado.web**: - 支持 PATCH HTTP 方法。 - `addslash` 和 `removeslash` 装饰器改为永久重定向(301)。 - `RequestHandler.flush` 增加回调机制。 - 重复设置 cookie 时覆盖旧值。 - 新增 `transform_first_chunk` 的状态码参数。 - **tornado.websocket**: - `WebSocketClientConnection.write_message` 支持字典参数。 - 支持最新的 WebSocket 协议(RFC 6455)。 - 支持子协议(Sec-WebSocket-Protocol 头)。 --- #### 4. 安装与兼容性 - **安装**:通过 `pip install tornado` 安装,默认依赖 Python 3.8 或更高版本。 - **平台支持**: - 主要针对 Unix-like 系统,最佳性能在支持 epoll(Linux)、kqueue(BSD/macOS)或 /dev/poll(Solaris)的系统上。 - Windows 支持有限,不建议用于生产环境。 - **第三方依赖**: - `pycurl`(可选,需 libcurl 7.22+)。 - `pycares`(可选,用于非阻塞 DNS 解析)。 --- #### 5. 其他重要更新(6.1.0 版本) - **Python 版本**:6.1.0 是最后一个支持 Python 3.5 的版本,后续版本要求 Python 3.6+。 - **Windows 支持**:改进与 asyncio 的兼容性,自动回退到 selector 模型。 - **性能优化**: - `IOLoop.add_callback` 性能提升。 - `PeriodicCallback` 避免重复触发。 - **模板改进**: - 支持 `{# 和 #}` 语法的注释。 - 模板错误堆栈更详细,支持多行指令。 - **日志与测试**: - 新增时间基的日志轮转模式。 - 测试用例支持 `__wrapped__` 属性。 --- #### 6. 总结 Tornado 6.3 是一个高效、异步的 Web 框架,适合长轮询和 WebSocket 等高并发场景。其核心功能包括非阻塞 I/O、单线程事件循环和完整的 HTTP 服务器支持。文档提供了详细的用户指南和 API 参考,适用于开发高性能 Web 应用。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 257 页请下载阅读 -
文档评分
请文明评论,理性发言.