0

そこで、「echo」という単純なcherrypy関数を作成して、cherrypyがPython関数に何を送信するかを調べました。例:

http://djotjog.com/cp/echo/692-gg_org_id-2013-02-05.json/
RETURNS:
{'kw': {}, 'args': (), 'param_1': '692-gg_org_id-2013-02-05.json', 'param_2': None}

さて、これは奇妙に思えるかもしれませんが、辞書を渡したいと思います。これはHTMLの悪夢ですか?例:

この関数には2つの引数が必要です。パラメータはオプションです。

def some_function(filename, params = {'db':'bh-localhost','h':'sparse','branching':7})

チェリーピーを介して送信...

http://djotjog.com/cp/echo/692-gg_org_id-2013-02-05.json/{h:'branchy','branching':7,'db':'bh-localhost'}
RETURNS    
{'kw': {}, 'args': (), 'param_1': '692-gg_org_id-2013-02-05.json', 'param_2': "{h:'branchy','branching':7,'db':'bh-localhost'}"}

しかし、エコーではなく実際の関数を通過すると、次のようになります。

404お探しのページが見つかりませんでした。指定されたURIに一致するものはありません。

これは、辞書が文字列であり、現在は辞書ではないためですか?辞書を渡すためにどのようなトリックができますか?それとも、これを個々の議論に留めますか?

4

1 に答える 1

1

可変数のパラメーターを受け取るようにエコーを設定してみてください...

@cherrypy.expose
def echo(self, *args, **kwargs):
    return kwargs['param_1']

お役に立てれば。

アンドリュー

于 2013-02-15T16:48:47.233 に答える