在以下示例中,我希望在访问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())
答案 0 :(得分:4)
是的,你在_cp_dispatch
出错了,只有当没有属性/方法与请求匹配时才会调用它。
如果您致电:http://127.0.0.1:8080/b/method_a,则会引发异常。
method_a
不存在,method_b
确实存在。