私は多くのルートエンドポイントを持つフラスコアプリケーションを持っています。これらのルートのそれぞれでは、認証チェック、許可用の検証ロジック、XSS検証などの一般的な操作を行う必要があります。私は、認証検証のためのすべてのメソッドでlogin_requiredデコレータを使用していると書かれている記事はほとんど読んでいません。Flaskルートに共通ロジックを配置する場所
今私の質問は、検証の種類ごとにデコレータを作成し、すべてのメソッドで使用する必要があります。 Flaskアプリケーションでこのようなケースを処理する方法を教えてください。
@Login_required()
@Xss_validate()
@permission_check()
def subsribe_service(cs_dict, data_dict):
Logic to subscribe....
@Login_required()
@Xss_validate()
@permission_check()
def unsubsribe_service(cs_dict, data_dict):
Logic to unsubscribe....
@Login_required()
@Xss_validate()
@permission_check()
def delete_service(cs_dict, data_dict):
Logic to delete....
@Login_required()
@Xss_validate()
@permission_check()
def edit_service(cs_dict, data_dict):
Logic to edit....
ご覧のとおり、すべてのアクションメソッドで共通のロジックをデコレータとして使用しています。私はすべてのアクションがこれらの3つのロジックを必要とするので、すべてのアプリケーションでこのようなデコレータを使用しています。
[青写真](http://flask.pocoo.org/docs/0.12/blueprints/)を使用する必要があります –
青写真がどのように問題を解決するのか分かりません。 Blueprintはアプリケーションを分離するためのものです。 – user1592389