from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.resource import Resource
import time
#if do not rewrite getChild
#you must add isLeaf = True
#or getChild will return None
class ClockResource(Resource):
def render_GET(self, request):
return '<h1>Time:%s</h1>' % (time.ctime())
def getChild(self, name, request):
print 'name=%s' % (name,)
print 'request=%s' % (request,)
return self
if __name__ == '__main__':
cr = ClockResource()
s = Site(cr)
reactor.listenTCP(8000, s)
reactor.run()
如果不实现getChild,那么必须要将该资源设置为叶子资源,由框架直接返回自己,否则的话,会返回None,导致错误。
request是请求对象,name是请求资源的最后名字,例如http://localhost 那么name就是空字符串,如果是http://localhost/123 那么name就是123,那么始终是/最后面的内容,如果以/结束则name是空字符串。