扭曲的孩子
Twisted subchild
我正在尝试创建一个嵌套资源 (subchild),其中主要 child 没有任何内容,如果有的话,只是一个虚拟页面。因此,例如我正在尝试制作以下资源。
/saml/login
/saml/logout
/saml/acs
/saml/sls
但我没有或真的不需要 /saml 资源,只需要 children。
我不确定如何添加单个子child,更不用说没有 parent 的子child,如果需要我可以创建虚拟 /saml 资源,但仍然需要嵌套页面。
这是我目前的情况。
class Hello(Resource):
isLeaf = True
def getChild(self, name, request):
if name == '':
return self
return Resource.getChild(self, name, request)
def render_GET(self, request):
return b"Hello, world! I am located at"
class SamlManager(object):
def __init__(self, **kwargs):
for k, v in kwargs.items():
setattr(self, k, v)
self.login_callback = None
def init_app(self, root):
root.saml_manager = self # expose for login_from_acs
root.putChild(b'saml', Hello())
您可以使用 NoResource
作为您想要 return 请求时 404 响应的资源:
from twisted.web.resource import Resource, NoResource
saml = NoResource()
saml.putChild(b"login", ...)
saml.putChild(b"logout", ...)
...
root = Resource()
root.putChild(b"saml", saml)
我正在尝试创建一个嵌套资源 (subchild),其中主要 child 没有任何内容,如果有的话,只是一个虚拟页面。因此,例如我正在尝试制作以下资源。
/saml/login
/saml/logout
/saml/acs
/saml/sls
但我没有或真的不需要 /saml 资源,只需要 children。
我不确定如何添加单个子child,更不用说没有 parent 的子child,如果需要我可以创建虚拟 /saml 资源,但仍然需要嵌套页面。
这是我目前的情况。
class Hello(Resource):
isLeaf = True
def getChild(self, name, request):
if name == '':
return self
return Resource.getChild(self, name, request)
def render_GET(self, request):
return b"Hello, world! I am located at"
class SamlManager(object):
def __init__(self, **kwargs):
for k, v in kwargs.items():
setattr(self, k, v)
self.login_callback = None
def init_app(self, root):
root.saml_manager = self # expose for login_from_acs
root.putChild(b'saml', Hello())
您可以使用 NoResource
作为您想要 return 请求时 404 响应的资源:
from twisted.web.resource import Resource, NoResource
saml = NoResource()
saml.putChild(b"login", ...)
saml.putChild(b"logout", ...)
...
root = Resource()
root.putChild(b"saml", saml)