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

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

 2008-11-13 13:13:08 来源:WEB开发网   
核心提示: Alex Levy 开发了这个模板,并使用 CSS2 来控制元素的确切表示,使用 Twisted 框架进行网络编程,第 3 部分(6),显示出的样式比我的例子中的更好,很明显,不是基于客户端的请求来更新,我们向服务器的 Reactor 添加了一个对 update() 函数的重复回叫;这与本

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()

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

Tags:使用 Twisted 框架

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