假设我有一些代码(使用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/
我明白了
name.index:无
很好。这意味着正在调用name()类。
但是,如果我去
http://localhost:8080/names/mark
,我得到一个404错误而不是
名称.索引:标记
我在等你。
这让我困惑,因为根据
PageHandler
文档:
当一个请求被处理时,这个URI被分割成它的组件,并且每个组件按照树中节点的顺序匹配。任何尾部组件都是“虚拟路径”组件,并作为位置参数传递。
现在假设我将name()类更改为如下所示:
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
我明白了
姓名.姓名:马克
.
有人能解释一下这里发生了什么吗?