0

次のコードを使用しています。

@api.route('/akilo/<a>/<b>/')
@api.route('/akilo/<c>/')
class Akilo(Resource):
    def get(self, a, b, c):
        if a and b:
            return a + b
        else:
            return c

使用しているパラメーターに応じて、同じリソースから異なる応答を取得する

私がリクエストをするとき:

/select/akilo/bom/dia/

次のエラーが表示されます。

TypeError: get() takes exactly 4 arguments (3 given)

私たちを手伝ってくれますか?

4

1 に答える 1

2

のシグネチャgetを make ab、およびcoptional に変更する必要があります。

def get(a=None, b=None, c=None):

または、ルートで使用されていないものにデフォルト値を提供する必要があります。

@api.route('/akilo/<a>/<b>/', defaults={'c': None})
@api.route('/akilo/<c>/', defaults={'a': None, 'b': None}) t
于 2016-05-05T17:23:14.410 に答える