Twisted系列web编程之四 :动态网页地址分发
By:Roy.LiuLast updated:2012-11-06
上面一篇讲到 静态地址的分发,那个相对比较简单,在程序中直接指定要要渲染的资源文件就可以了。但动态分发,从字面意思上看就知道在 url 上有动态变化的参数,根据参数取不同的资源。当然这也离不开动态生成内容,类似于第二讲, 下面的讲解了一个根据传入的年号而现实日历的一个例子。
比如,你在 URL 地址栏上输入 http://url.../2012 那么就显示2012年的日历。如果输入2013,就显示 2013年的日历。
现在将所有的代码,集中在一起,整理如下
运行,并在浏览器上如数http://localhost:8880/2012 你会得到如下图所示的网页,实现了动态分发.

from calendar import calendar
class YearPage(Resource):
def __init__(self, year):
Resource.__init__(self)
self.year = year
def render_GET(self, request):
return "%s
" % (calendar(self.year),)
比如,你在 URL 地址栏上输入 http://url.../2012 那么就显示2012年的日历。如果输入2013,就显示 2013年的日历。
class Calendar(Resource):
def getChild(self, name, request):
return YearPage(int(name))
现在将所有的代码,集中在一起,整理如下
from twisted.web.server import Site
from twisted.web.resource import Resource
from twisted.internet import reactor
from calendar import calendar
class YearPage(Resource):
def __init__(self, year):
Resource.__init__(self)
self.year = year
def render_GET(self, request):
return "%s
" % (calendar(self.year),)
class Calendar(Resource):
def getChild(self, name, request):
return YearPage(int(name))
root = Calendar()
factory = Site(root)
reactor.listenTCP(8880, factory)
reactor.run()
运行,并在浏览器上如数http://localhost:8880/2012 你会得到如下图所示的网页,实现了动态分发.

From:一号门

COMMENTS