2017-07-17 17 views
0

@app.route('/api/<path:path>')で装飾された機能と、@app.route('/<path:path>')で装飾された別の機能があるとします。 URLパス/api/fooは両方のルートと一致します。 Flaskはどの関数が呼び出されるかを保証していますか?Flaskはどのようにあいまいなルートを解決しますか?

+0

'@app.route( '/ ')'が '/ api/foo'をどのように解決するのか説明できますか? –

+0

@RajaSimon 'path = '/ api/foo'で解決しますか? –

答えて

1

あなたはFlaskdocumentationにこれに対する答えを見つけることができます。

Flaskは複雑でルートを注文自動的 に設計されたWerkzeugルーティングシステムを使用しています。つまり、 は任意の順序でルートを宣言でき、それらはまだ として動作します。これは、アプリケーションが複数のモジュールに分割されているときに、デコレータが定義されていない の順番で起動される可能性があるので、 デコレータベースのルーティングを適切に実装したい場合の要件です。

Werkzeugルーティングシステムのもう1つの設計上の決定は、Werkzeugに ルートがあり、URLsが一意であることを確認してください。 Werkzeugは となります。経路があいまいである場合は、 標準URLに自動的にリダイレクトされます。

+0

これはどのようにして質問に答えますか? –

+0

@RajaSimon回答を読んでください: '複雑なルートを自動発注するように設計されたもの – kemis

+0

このようなスタッフは' print( "NUMBER 1") 'と他の' print( "NUMBER 2" '... – kemis

関連する問題