0

例如,如果我有这个简单的 TCP 服务器:

from twisted.internet import reactor
from twisted.web.resource import Resource
from twisted.web.server import Site

from resources import SomeResource


logging.info("Starting server...")
root = Resource()
root.putChild("test", SomeResource())
reactor.listenTCP(8080, Site(root))
reactor.run()

例如,使用具有 render_GET 和 render_POST 方法的 SomeResource。然后我知道我可以发送一个 POST/GET 到主机名:8080/test

但现在我想让它更复杂,我想做一些类似 hostname:8080/test/status

可以在 SomeResource() 中将其定义为方法吗?还是我必须为每个不同的 url 定义一个新资源?

4

1 回答 1

2

如果您希望 /test/.... 的所有内容都到达 SomeResource 的渲染 (render_GET/render_POST) 方法,只需将其定义为叶子

class SomeResource(Resource):
    isLeaf = True

如果您想查看“test/”之后的部分,request.postpath 将包含该部分。

于 2016-06-07T21:37:21.520 回答