Tornado 6.1 Documentation
708.03 KB
931 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .epub | 3 |
摘要 | ||
Tornado 6.1文档详细描述了该Python Web框架和异步网络库的功能和更新内容。其核心组件包括Web框架、HTTP客户端和服务器、异步网络库以及协程库。该版本引入了多项改进,如异步DNS解析、增强的HTTPS支持、性能优化和错误处理增强。同时,文档还提供了模板引擎、国际化支持以及与其他服务的集成方式。 | ||
AI总结 | ||
以下是《Tornado 6.1 Documentation》的中文总结,涵盖了文档的主要内容和核心信息:
---
### 《Tornado 6.1 Documentation》总结
#### 1. **库概述**
- **Tornado** 是一个 Python 异步网络库和 Web 框架,最初由 FriendFeed 开发。此框架使用非阻塞网络 I/O,能支持数万个并发连接,适用于长轮询、WebSocket 等长连接场景。
- Tornado 的四大核心组件:
1. Web 框架(包括 `RequestHandler` 等)。
2. HTTP 客户端和服务器实现(如 `HTTPServer` 和 `AsyncHTTPClient`)。
3. 异步网络库(如 `IOLoop` 和 `IOStream`)。
4. 协程库(如 `tornado.gen`,类似于 Python 3.5+ 的 `async def`)。
---
#### 2. **主要模块介绍**
- **网络模块**:
- `tornado.ioloop`:主事件循环。
- `tornado.iostream`:非阻塞套接字的便捷封装。
- `tornado.tcpclient` 和 `tornado.tcpserver`:TCP 客户端和服务器实现。
- **并发与协程**:
- `tornado.gen`:基于生成器的协程。
- `tornado.locks`:同步原语。
- `tornado.queues`:协程队列。
- **集成与工具**:
- `tornado.auth`:支持 OpenID 和 OAuth 的第三方登录。
- `tornado.options`:命令行解析。
- `tornado.log`:日志支持。
- `tornado.testing`:异步代码的单元测试支持。
- **Web 模块**:
- `tornado.web`:Web 框架核心,包括 `RequestHandler` 和模板支持。
- `tornado.websocket`:WebSocket 支持。
---
#### 3. **版本更新说明**
- **Tornado 6.1**:
- **主要更新**:
- 提供 `tornado.concurrent.Future` 的 `add_done_callback` 方法。
- 支持 `asyncio.Future` 的 `exception()` 方法。
- `tornado.simple_httpclient` 的 `HTTPClient` 现在默认支持 `network_interface` 参数。
- **改进**:
- `tornado.platform.asyncio` 模块的性能和兼容性优化。
- `tornado.iostream` 的 `SSLConnection` 类在 Python 3.7+ 上支持 `ssl.SSLContext`。
- **问题修复**:
- 修复 `tornado.iostream` 在某些情况下的内存泄漏问题。
- 解决 `tornado.web` 中 `StaticFileHandler` 的一些边缘案例问题。
- **移除**:
- 移除了 `tornado.stack_context` 模块,建议使用 `contextvars` 替代。
- **Tornado 6.0**:
- **主要更新**:
- **协程支持**:全面支持 Python 3.7+ 的 `asyncio`,推荐使用 `async def` 代替 `tornado.gen`。
- **性能优化**:提升了 `IOLoop` 的性能和资源使用效率。
- **TLS 1.3 支持**:增强了 SSL/TLS 的安全性。
- **改进**:
- `tornado.ioloop.PeriodicCallback` 支持随机 jitter。
- `tornado.tcpserver.TCPServer` 支持 `max_restarts` 参数。
- **移除**:
- 移除了 `TornadoReactor` 和 `TwistedIOLoop`,建议使用 `asyncio`Bridge。
---
#### 4. **已知问题**
- 某些版本的 Tornado 在处理大文件上传或特定类型的 WebSocket 连接时可能存在性能问题。
- 使用 `tornado.simple_httpclient` 时,如果服务器返回无 `Location` Header 的 3xx 状态码,可能会导致重定向失败。
---
#### 5. **升级指南**
- **从 Tornado 5.x 升级到 6.x**:
- **移除**:
- `tornado.gen.coroutine` 和 `yield from`,建议使用 `async def` 替代。
- `tornado.iostream` 的 callback 参数(除 `set_close_callback` 外)。
- **接口更改**:
- `tornado.options.parse_config_file` 支持设置为字符串类型。
- `tornado.web.RequestHandler.redirect` 的行为更改,某些情况下需要手动捕获 `asyncio.CancelledError`。
- **默认行为更改**:
- `tornado.simple_httpclient` 的最大响应体大小现在由 `max_body_size` 控制。
- 默认 gzip 压缩级别从 9 降低到 6。
---
#### 6. **模板与国际化**
- **模板语法**:
- 支持嵌入 Python 控制结构和表达式,例如:
```python
|
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
924 页请下载阅读 -
文档评分