4

次のようなフラスコアプリケーションがあります。

app.py
blueprints/
    www.py
    shop.py

app.pyblueprintsは、ディレクトリ内の各ファイルから blueprint オブジェクトをインポートし、適切なサブドメイン (これもファイルからインポートされます) を使用してそれらをFlaskオブジェクトに登録します。app.py各ブループリントはエラー ハンドラーを登録しますが、これらは一般的なエラーではなく、ビューが手動で を呼び出した場合にのみ呼び出されますabort()(つまり、 が管理するサブドメインで存在しない URL を呼び出すと、代わりにshop.pyエラー ハンドラーが呼び出されます)。app.py

エラーが発生しているサブドメインを処理しているブループリントにフラスコにエラーを渡すよう強制する方法はありますか?

4

2 に答える 2

5

Flask のドキュメントによると、これは404 と 500 では不可能です。この機能が必要な場合は、ブループリントでワイルドカード ルートを使用して 404 を処理できる場合があります。

@a_blueprint.route("<path:invalid_path>")
def missing_resource(invalid_path):
    return "There isn't anything at " + invalid_path, 404
于 2013-10-30T01:18:51.840 に答える
0

current_app を使用して設計図に入れることができます。何かのようなもの:

shop.py

from flask import current_app

@current_app.errorhandler(404)
def page_not_found(e):
return redirect(url_for('shop.index'))
于 2013-10-29T14:34:57.353 に答える