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

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

 2008-11-13 13:14:25 来源:WEB开发网   
核心提示: 使用 Twisted 来更新静态页面在我的第一篇 Twisted 文章中所提出的定时回调技术可以用来定期更新上面所讨论的 Weblog.html 文件,也就是说,使用 Twisted 框架进行网络编程,第 2 部分(4),您可以用非阻塞 twisted.internet.reactor.c

使用 Twisted 来更新静态页面

在我的第一篇 Twisted 文章中所提出的定时回调技术可以用来定期更新上面所讨论的 Weblog.html 文件。也就是说,您可以用非阻塞 twisted.internet.reactor.callLater() 调用来替换 logmaker.py 中的 time.sleep() 调用:

清单 3. tlogmaker.py Weblog 刷新器脚本

from webloglib import log_fields, TOP, ROW, END, COLOR
import webloglib as wll
from urllib import unquote_plus as uqp
import os, twisted.internet
LOG = open('../access-log')
RECS = []
PAGE = 'www/weblog.html'
def update():
  global RECS
  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)
  twisted.internet.reactor.callLater(5, update)
update()
twisted.internet.reactor.run()

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

Tags:使用 Twisted 框架

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