搜索

pdf文档 Tornado 6.4 Documentation 推荐

1.09 MB 268 页 0 下载 148 浏览 0 评论 0 收藏
语言 格式 评分
英语
.pdf
3
摘要
Tornado是一个基于Python的Web框架和非阻塞网络库,最初由FriendFeed开发。它通过使用非阻塞网络I/O,能够处理成千上万的长连接,适用于长轮询、WebSocket和其他需要长期连接到每个用户的应用。Tornado可以分为三个主要组件:Web框架、HTTP客户端和服务器、以及异步网络库。Tornado的异步网络库基于单线程事件循环,旨在最小化高并发连接的成本。文档还介绍了Tornado与WSGI的兼容性、异步与非阻塞I/O的区别,以及其在实时Web应用中的应用。
AI总结
### Tornado 6.4 文档总结 #### 1. 概述 Tornado 是一个高性能的 Python Web 框架和异步网络库,最初由 FriendFeed 开发。它通过非阻塞网络 I/O 实现了高效的并发处理,适用于长轮询、WebSocket 等需要长连接的场景。Tornado 的核心组件包括: - **Web 框架**:基于 `RequestHandler` 创建 Web 应用,并提供支持类。 - **HTTP 客户端和服务器**:实现客户端和服务器端的 HTTP 协议。 - **异步网络库**:包含 `IOLoop` 和 `IOStream`,用于构建 HTTP 组件和其他协议。 Tornado 提供了一个完整的堆栈 Web 服务器解决方案,可以替代 WSGI。虽然可以使用 Tornado 的 HTTP 服务器作为 WSGI 框架的容器(`WSGIContainer`),但要充分利用 Tornado 的性能,建议使用其内置的 Web 框架和 HTTP 服务器。 --- #### 2. 异步与非阻塞 I/O Tornado 的单线程事件循环设计使得所有应用代码应尽量异步和非阻塞。异步和非阻塞是两个密切相关但不完全相同的概念: - **异步**:操作可以被中断,允许其他任务执行。 - **非阻塞**:操作不会阻塞事件循环,允许同时处理多个请求。 Tornado 的单线程模型通过最小化线程开销,降低了资源消耗,特别适合处理大量并发连接。 --- #### 3. 核心功能 - **Web 框架**:提供 `RequestHandler` 类用于创建 Web 应用,并支持模板渲染、国际化、用户认证等功能。 - **HTTP 客户端和服务器**:`HTTPServer` 和 `AsyncHTTPClient` 分别用于实现服务器端和客户端的 HTTP 协议。 - **异步网络库**:`IOLoop` 是事件循环的核心,`IOStream` 是用于处理流式数据的基础类。 - **WebSocket 支持**:Tornado 提供了客户端和服务器端的 WebSocket 实现,支持最新的协议标准。 --- #### 4. 集成与扩展 - **asyncio 集成**:Tornado 提供了与 asyncio 的桥梁模块(`tornado.platform.asyncio`),允许在同一个事件循环中使用 asyncio。 - **Twisted 集成**:Tornado 提供了与 Twisted 的桥梁模块(`tornado.platform.twisted`),但该模块已 deprecated,建议使用 asyncio 集成。 - **第三方服务集成**:Tornado 支持与外部服务(如 OAuth、Google Analytics)的集成。 --- #### 5. 版本更新与兼容性 - **安全修复**:修复了 Cookie 解析漏洞,改进了 WebSocket 连接的安全性。 - **兼容性**: - Tornado 6.4 要求 Python 2.7 或 3.3+,不再支持 Python 2.6 和 3.2。 - 弃用了一些旧模块(如 `tornado.platform.twisted`),建议使用新的 asyncio 集成。 - 更新了 Cookie 格式和 XSRF 令牌机制,用户在升级时需注意配置兼容性。 --- #### 6. 新功能与改进 - **性能优化**:改进了Coroutine 的性能,更多方法返回 Future。 - **文件上传**:`stream_request_body` 装饰器支持大文件的低内存上传。 - **错误处理**:改进了 `IOLoop` 的错误日志记录和处理机制。 - **IPv6 支持**:`tornado.tcpclient` 支持非阻塞 DNS 解析和 IPv6 连接。 --- #### 7. 总结 Tornado 是一个高效、灵活的 Web 框架和异步网络库,特别适合需要高并发和长连接的实时 Web 应用。其核心优势在于单线程事件循环和非阻塞 I/O 设计。Tornado 提供了完整的 Web 服务器解决方案,并支持与 asyncio 和其他服务的集成。建议用户在开发新项目时优先使用 Tornado 的核心组件和最新功能,避免使用已 deprecated 的模块。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 261 页请下载阅读 -
文档评分
请文明评论,理性发言.