为什么Twisted resource.Resource执行render()两次?

时间:2012-03-27 04:39:22

标签: python twisted

我是Twisted的新手。为什么要两次打印“render()”?我知道如果我返回server.NOT_DONE_YET,它只会打印一次,但我希望返回string / JSON。有什么帮助吗?

代码:

from twisted.web import resource, server
from twisted.internet import reactor
import simplejson

class WResource(resource.Resource):
    isLeaf=True

    def __init__(self):
        print "resource started"

    def render(self, request):
        print "render()"
        request.setHeader('Content-Type', 'application/json')
        return simplejson.dumps(dict(through_port=8080, subdomain='hello'))

reactor.listenTCP(9000, server.Site(WResource()))
reactor.run()

输出:

> python server.py
resource started
render()
render()

1 个答案:

答案 0 :(得分:2)

因为您的网络浏览器正在请求favicon.ico。如果您在request.postpath方法中打印render,则会看到只有一个请求正在访问您期望的页面。