假设我有一些代码(使用CherryPy),如下所示:
import cherrypy
class Names:
def index(self, name=None):
return "Names.index: " + str(name)
index.exposed = True
class Root:
def index(self):
return "This is the root"
index.exposed = True
if __name__ == "__main__":
root = Root()
root.names = Names()
cherrypy.tree.mount(root, '/')
cherrypy.engine.start()
cherrypy.engine.block()
如果我点击网址 http://localhost:8080/names/ ,我会看到 Names.index:无,这很好。这意味着正在调用Names()类。
但是,如果我转到 http://localhost:8080/names/mark ,我会收到404错误,而不是我期待的 Names.index:mark 。
这让我感到困惑,因为根据PageHandler文档:
处理请求时,URI将拆分为其组件,并且每个组件将按顺序与树中的节点进行匹配。任何尾随组件都是“虚拟路径”组件,并作为位置参数传递。
现在假设我将Names()类更改为:
class Names:
def index(self, name=None):
return "Names.index: " + str(name)
index.exposed = True
def name(self, name=None):
return "Names.name: " + str(name)
name.exposed = True
现在我可以转到 http://localhost:8080/names/name/mark ,我看到 Names.name:mark 。
有人可以解释这里发生了什么吗?