epub文档 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 {{ title }}
    {% for item in items %}
  • {{ escape(item) }}
  • {% end %}
``` - 支持多语言和国际化,使用 `GettextLocale.pgettext` 添加上下文支持。 - 模板文件默认在与 `.py` 文件相同的目录中,可以通过 `template_path` 设置更改路径。 --- #### 7. **其他工具与实用功能** - **日志与配置**: - `tornado.log.define_logging_options` 支持自定义日志配置。 - `tornado.options` 支持从文件加载配置。 - **测试**: - `tornado.testing.AsyncTestCase` 现在会取消未等待的协程,以减少 Python 运时警告。 - `ExpectLog` 对象新增 `logged_stack` 属性,便于测试日志栈跟踪。 - **实用工具**: - `tornado.util.import_object` 支持 Python 2 下的 Unicode 字符串。 - `tornado.process.Subprocess.wait_for_exit` 提供了协程友好的子过程等待接口。 --- 以上是《Tornado 6.1 Documentation》的核心内容总结,重点涵盖了库的功能、模块介绍、版本更新、已知问题及升级指南等内容,旨在为开发者提供快速了解 Tornado 6.1 的便利。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 924 页请下载阅读 -
文档评分
请文明评论,理性发言.