WEB开发网
开发学院软件开发Python 使用 Twisted 框架进行网络编程,第 2 部分 阅读

使用 Twisted 框架进行网络编程,第 2 部分

 2008-11-13 13:14:25 来源:WEB开发网   
核心提示: mktap Web --path ~/twisted/www --port 8080 这创建了一个非常通用的服务器,它在端口 8080 上处理来自基本目录 ~/twisted/www 的文件,使用 Twisted 框架进行网络编程,第 2 部分(3),要运行该服务器,请使用工具 twist

mktap Web --path ~/twisted/www --port 8080

这创建了一个非常通用的服务器,它在端口 8080 上处理来自基本目录 ~/twisted/www 的文件。要运行该服务器,请使用工具 twistd来启动所创建的 Web.tap 文件。

twistd -f Web.tap

对于 HTTP 之外的其他类型的服务器,您也可以使用其他名称来代替 Web : dns 、 conch 、 news 、 telnet 、 im 和 manhole 等。这些名称中有些是常见的服务器,其他则特定于 Twisted。而且一直都可以添加更多名称。

正好位于基本目录的任何静态 HTML 文件都可以由该服务器进行传递,这和其他服务器非常相似。但是另外有一点,您还可以处理扩展名为 .rpy 的动态页面 - 从概念上讲,这些动态页面类似于 CGI 脚本,但是它们避免了减慢 CGI 速度的派生(fork)开销和解释器启动时间。Twisted 动态脚本的结构与 CGI 脚本略有不同;最简单的情况下它可以类似于:

清单 2. www/dynamic.rpy Twisted 页面

from twisted.web import resource
page = '''<html><head><title>Dynamic Page</title></head>
<body>
 <p>Dynamic Page served by Twisted Matrix</p>
</body>
</html>'''
class Resource(resource.Resource):
  def render(self, request):
    return page
resource = Resource()

文件级变量 resource 很特殊 - 它需要指向 twisted.web.resource.Resource 子类的实例,该类定义了 .render() 方法。您在所处理的目录中想包括多少动态页面就可以包括多少,并且可以自动处理每个页面。

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 Twisted 框架

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接