_cp_dispatch没有在cherrypy中调用

时间:2015-12-15 12:34:10

标签: python cherrypy cp dispatch

在以下示例中,我希望在访问url http://127.0.0.1:8080/b/method_b时获得异常。相反,我得到正常的http响应,其中包含文本' method_b'在浏览器中。没有异常,意味着没有调用_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())

1 个答案:

答案 0 :(得分:4)

是的,你在_cp_dispatch出错了,只有当没有属性/方法与请求匹配时才会调用它。

如果您致电:http://127.0.0.1:8080/b/method_a,则会引发异常。

method_a不存在,method_b确实存在。