Twisted Web 概述

简介

Twisted Web 是一个用纯 Python 编写的 Web 应用程序服务器,它在多个抽象级别提供 API,以方便不同类型的 Web 编程。

Twisted Web 的结构

../../_images/web-overview.png

当 Web 服务器从客户端接收请求时,它会创建一个 Request 对象并将其传递给 Resource 系统。Resource 系统根据客户端请求的路径,将请求分派给相应的 Resource 对象。Resource 被要求渲染自身,结果被返回给客户端。

资源

资源是 Twisted Web 服务器中应用程序的最低级别抽象。每个 Resource 都与请求的路径一一对应:您可以将 Resource 视为要渲染的单个“页面”。创建 Resource 的接口非常简单;它们必须有一个名为 render 的方法,该方法接受一个参数,即 Request 对象(twisted.web.server.Request 的实例)。此 render 方法必须返回一个字符串,该字符串将返回给发出请求的 Web 浏览器。或者,它们可以返回一个特殊的常量,twisted.web.server.NOT_DONE_YET,它告诉 Web 服务器不要关闭连接;然后,您必须使用 request.write(data) 渲染页面,并在完成时调用 request.finish()

使用 Twisted Web 进行 Web 编程

寻求比 Resource 系统更高抽象级别的 Web 程序员应该查看 Nevow。Nevow 基于之前在 Twisted 中开发的想法,但现在在 Twisted 之外维护,以简化开发和发布周期压力。