1

これは、CherryPy を初めて使用するため、愚かなことを許してください。

人の追加/削除を部分的に扱う RESTful API を作成しようとしています。example.com/people/ を GET/PUT/DELETE できるようにしたいです。

ディスパッチャは、インデックス メソッドと定義済み関数でまったく異なる動作をしているようです。

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 メソッドは追加のキーワード引数を取ることができます。次のキーワード引数を参照してください。ただし、他のすべてのページ ハンドラーとは異なり、位置引数を取ることはできません。

ソース

ただし、の URL はexample.com/people?name=tom期待どおりに機能するはずです。

于 2013-08-15T15:55:07.323 に答える