56

私はFlask0.9を使用しています。

次に、3つのURLを同じ関数にルーティングします。

/item/<int:appitemid>
/item/<int:appitemid>/ 
/item/<int:appitemid>/<anything can be here>

<anything can be here>パーツが関数で使用されることはありません。

この目標を達成するには、同じ関数を2回コピーする必要があります。

@app.route('/item/<int:appitemid>/')
def show_item(appitemid):

@app.route('/item/<int:appitemid>/<path:anythingcanbehere>')
def show_item(appitemid, anythingcanbehere):

より良い解決策はありますか?

4

2 に答える 2

116

デフォルト値が の、空になる可能性があるパラメーターを使用しないのはなぜNoneですか?

@app.route('/item/<int:appitemid>/')
@app.route('/item/<int:appitemid>/<path:anythingcanbehere>')
def show_item(appitemid, anythingcanbehere=None):
于 2012-12-24T16:32:31.703 に答える
16

はい - 次の構成を使用します。

@app.route('/item/<int:appitemid>/<path:path>')
@app.route('/item/<int:appitemid>', defaults={'path': ''})

http://flask.pocoo.org/snippets/57/のスニペットを参照してください。

于 2012-12-24T16:33:17.430 に答える