1

这是我与 CherryPy 的第一次郊游,所以请原谅任何愚蠢。

我正在尝试编写一个部分处理添加/删除人员的 RESTful API。我希望能够 GET/PUT/DELETE example.com/people/。

对于 index 方法和定义的函数,调度程序的行为似乎完全不同:

class people:
    """This is the class for CherryPy that deals with CRUD on people"""
    @cherrypy.expose
    def index(self, name):
        return name

    @cherrypy.expose
    def who(self, name):
        return name

root = webroot()
root.people = people()
cherrypy.quickstart(root)

如果我打电话给 example.com/people/tom,我会得到一个 404,如果我打电话给 example.com/people/who/tom,我会得到 'tom' 返回。

谁能看到我做错了什么?有没有办法可以将 /xxx 传递给索引?

4

1 回答 1

2

当涉及到 URL 参数时,索引有点不同。

index 方法在 CherryPy 中有一个特殊的作用:它处理以斜杠结尾的中间 URI;例如,URI /orders/items/ 可能映射到 root.orders.items.index。如果请求包含查询字符串或 POST 参数,则 index 方法可以采用额外的关键字参数;请参阅关键字参数,下一个。但是,与所有其他页面处理程序不同,它不能接受位置参数

资源

但是, 的 urlexample.com/people?name=tom应该可以按您的预期工作。

于 2013-08-15T15:55:07.323 回答