Twisted 的 isLeaf 属性的目的是什么?
What is the purpose of Twisted's isLeaf attribute?
我找到了以下 Twisted 请求处理程序示例。我不清楚 isLeaf
属性的用途。为什么要在资源上设置它?
from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.resource import Resource
class RequestHandler(Resource):
isLeaf = True
def render_GET(self, request):
request.setResponseCode(200)
return "HelloWorld"
if __name__ == '__main__':
resource = RequestHandler()
factory = Site(resource)
reactor.listenTCP(8001, factory)
reactor.run()
来自 https://www.safaribooksonline.com/library/view/twisted-network-programming/9781449326104/ch04.html :
The isLeaf instance variable describes whether or not a resource will have children. Without more work on our part..., only leaf resources get rendered
示例:
/index.html
是典型的叶子
/users/
如果有像 /users/joe
这样的端点则不是
请参阅 twisted.web.resource.IResource.isLeaf 文档 --
Signal if this IResource implementor is a "leaf node" or not. If True, getChildWithDefault will not be called on this Resource.
Twisted 找到要呈现的资源的方式是将路径分成多个段,然后在根上调用 "getChildWithDefault",然后调用根 returns 等等。如果它用完段或找到 "leaf"(即 isLeaf=True)资源,它就会停止。
此时,它将调用资源上的渲染方法。在叶资源中,渲染器通常会希望查看 "request.postpath" 属性——其中存储了尚未用完的段列表以查找资源。
我找到了以下 Twisted 请求处理程序示例。我不清楚 isLeaf
属性的用途。为什么要在资源上设置它?
from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.resource import Resource
class RequestHandler(Resource):
isLeaf = True
def render_GET(self, request):
request.setResponseCode(200)
return "HelloWorld"
if __name__ == '__main__':
resource = RequestHandler()
factory = Site(resource)
reactor.listenTCP(8001, factory)
reactor.run()
来自 https://www.safaribooksonline.com/library/view/twisted-network-programming/9781449326104/ch04.html :
The isLeaf instance variable describes whether or not a resource will have children. Without more work on our part..., only leaf resources get rendered
示例:
/index.html
是典型的叶子/users/
如果有像/users/joe
这样的端点则不是
请参阅 twisted.web.resource.IResource.isLeaf 文档 --
Signal if this IResource implementor is a "leaf node" or not. If True, getChildWithDefault will not be called on this Resource.
Twisted 找到要呈现的资源的方式是将路径分成多个段,然后在根上调用 "getChildWithDefault",然后调用根 returns 等等。如果它用完段或找到 "leaf"(即 isLeaf=True)资源,它就会停止。
此时,它将调用资源上的渲染方法。在叶资源中,渲染器通常会希望查看 "request.postpath" 属性——其中存储了尚未用完的段列表以查找资源。