使用 Twisted 框架进行网络编程,第 2 部分
2008-11-13 13:14:25 来源:WEB开发网清单 1. logmaker.py Weblog 刷新器脚本
from webloglib import log_fields, TOP, ROW, END, COLOR
import webloglib as wll
from urllib import unquote_plus as uqp
import os, time
LOG = open('../access-log')
RECS = []
PAGE = 'www/weblog.html'
while 1:
page = open(PAGE+'.tmp','w')
RECS.extend(LOG.readlines())
RECS = RECS[-35:]
print >> page, TOP
odd = 0
for rec in RECS:
hit = [field.strip('"') for field in log_fields(rec)]
if hit[wll.status]=='200' and hit[wll.referrer]!='-':
resource = hit[wll.request].split()[1]
referrer = uqp(hit[wll.referrer]).replace('&',' &')
print >> page, ROW % (COLOR[odd], referrer, resource)
odd = not odd
print >> page, END
page.close()
os.rename(PAGE+'.tmp',PAGE)
time.sleep(5)
模块 Webloglib 中包含了所使用的精确 HTML,以及用于日志字段位置的一些常量。您可以从 参考资料所列出的 URL 中下载该模块。
这里要注意的是:不必将 Twisted 用作服务器 - Apache 或任何其他 Web 服务器都可以很好地担当此任。
创建 Twisted Web 服务器
运行 Twisted Web 服务器非常简单 - 或许比启动其他服务器还要简单。运行 Twisted Web 服务器的第一步是创建一个 .tap 文件,就像我们在第一篇文章中所看到的那样。您 可以通过在脚本中定义应用程序、包括对 application.save() 的调用然后运行该脚本来创建 .tap 文件。但是您也可以使用工具 mktap 来创建 .tap 文件。事实上,对于许多公共协议,您可以创建服务器 .tap 文件,而完全不需要任何特殊的脚本。例如:
更多精彩
赞助商链接