使用 Twisted 框架进行网络编程,第 3 部分
2008-11-13 13:13:08 来源:WEB开发网Alex Levy 开发了这个模板,并使用 CSS2 来控制元素的确切表示,显示出的样式比我的例子中的更好。很明显,不管有没有样式表,页面的基本布局都是相同的。
注意,分配给 <table> 元素的 View 是“List”,这个 View 与“Text”一样是基本的 Woven View。另一方面, “alternateColor”是一个自定义的 View,我们定义在下面的代码中。有些元素具有一个 pattern 属性,控制 View 使用该属性来定位匹配的孩子。特别地,一个 List View 由一个可选的 listHeader 、一些 listItem 孩子(一个模板标记,但是在生成时会扩展)和一个 emptyList 孩子(以免 Model 未定位到任何数据)组成。这些模式是 List View所使用的标准属性;其他 Views 将利用其他模式来进行扩展。
这一版本的 weblog 服务器的代码创建了一个自定义的 Twisted 服务器。不是基于客户端的请求来更新,我们向服务器的 Reactor 添加了一个对 update() 函数的重复回叫;这与本系列前一部分中的 tlogmaker.py 完全一致。在开始研究自定义的 Page 资源之前,我们先来看看设置代码:
清单 6. WeblogViewer.py 自定义 Twisted 服务器
import webloglib as wll
import os, sys
from urllib import unquote_plus as uqp
from twisted.internet import reactor
from twisted.web import microdom
from twisted.web.woven import page, widgets
logfile = '../access-log'
LOG = open(logfile)
RECS = []
NUM_ROWS = 25
def update():
global RECS
RECS.extend(LOG.readlines())
RECS = RECS[-NUM_ROWS*3:]
reactor.callLater(5, update)
update()
- ››使用脚本恢复WinXP系统的用户登录密码
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››使用纯文本文件打造WCF服务
- ››使用 Dojo 开发定制 Business Space 小部件,第 4...
- ››使用 ADDRESS 与 INDIRECT函数查询信息
- ››使用 COLUMN函数编制单元信息
更多精彩
赞助商链接