_cp_dispatch 在 cherrypy 中没有被调用

_cp_dispatch not getting called in cherrypy

在下面的示例中,我希望在访问 url http://127.0.0.1:8080/b/method_b 时出现异常。相反,我在浏览器中得到包含文本 'method_b' 的正常 http 响应。没有引发异常,这意味着 _cp_dispatcher 没有被调用。我对 _cp_dispatch 有什么误解吗?我在 python 2.7.10

中使用 cherrypy 版本 3.8.0
import cherrypy

class B(object):
    def _cp_dispatch(self, vpath):
        raise Exception("Here!!")

    @cherrypy.expose
    def method_b(self):
        return "method_b"

class A(object):
    def __init__(self):
        self.b = B()

cherrypy.quickstart(A())

是的,您对 _cp_dispatch 有误,只有当没有 property/method 匹配请求时才会调用它。

如果您调用:http://127.0.0.1:8080/b/method_a,它将引发异常。

method_a 不存在,method_b 存在。