使用 Twisted 框架进行网络编程,第 3 部分
2008-11-13 13:13:08 来源:WEB开发网我们的自定义 Page 做了三类事情。第一类是设置模板,以便与该资源一起使用。
第二类是使用前缀为 wv (Woven view)的神奇方法来定义一个自定义的 View。我们在自定义的 View 中真正所做的全部事情是将 class 属性设置为 CSS 样式表中的两个值中的一个,以使交错的行显示不同的颜色。但是您可以使用一个类似于 DOM 的 API 来根据自己的喜好处理代码。
第三类事情是有趣的。通过在 Model 本身的名称前面加上 wmfactory_ 前缀,我们定义了两个 Model。因为 filename 以 Text View 显示,所以最好是返回一个字符串。同样, entries 以 List View 显示,所以应该将一列项作为返回值。但是,XHTML 模板中使用的 referrer 和 request_resource 这两个 Model该如何呢?不用为这两个模型定义自定义的方法。但是, 围绕利用这些Model的节点的 listItem 模式有一个可用的词典—— entries 词典由 .wmfactory_entries() 返回。而该词典又包含 request_resource 和 referrer 的关键字;您不需要一个自定义的方法来支持 Model,只要一个带有必需关键字的词典就行了。因为 referrer 节点的 View 是 Text,所以说词典包含的值应该是字符串(如果不是这样,Woven 将进行强制转换)。
基于自定义的 WeblogViewer.py 资源创建一个自定义的服务器与我们以前讨论过的一样。创建一个服务器,然后再启动它:
% mktap web --resource-script=WeblogViewer.py --port 8080
% twistd -f web.tap
在最后一部分中
这篇介绍只涉及了 Woven 的一些皮毛。该软件包中还有许多复杂的功能,我希望自己给出的例子能对模板化系统起到抛砖引玉的作用。
下一次,在关于 Twisted 这一系列的最后一部分中,我将介绍一些零碎的东西,包括对安全性的一个简要概述。我们还将介绍 Twisted 软件包中包含的一些特殊协议和服务器。
更多精彩
赞助商链接