Pythonデコレータを使用してWebアプリケーションハンドラを単純にしようとしています。Pythonで2つのデコレータを実装するにはどうすれば呼び出し関数を呼び出すことになりますか
デコレータを使用して、認証されたセッションをチェックするコードを抽象化し、キャッシュプロバイダ(この例ではMemcache)が適切なレスポンスを持っているかどうかをチェックするコードを抽象化します。
がデコレータでこのメソッドの定義を検討してください。
@auth.login_required
@cache.clear
def post(self, facility_type_id = None):
は、ユーザがログインしているかどうかを確認するためにチェックをauth.login_required、そうでなければ適切なエラーメッセージを返す、または元の機能を実行します。
cache.clearは、呼び出し元のメソッドを実行する前に、キャッシュに特定のキーがあるかどうかを確認してそのキーを削除します。
auth.login_requiredとcache.clearの両方で、呼び出しメソッド(post)を最終的に実行するとします。
私が両方を読んだことから、私が今やっていることは、呼び出しメソッド(post)を2回実行します。
私の質問は、呼び出し元のメソッドの実行を終了させるデコレータをどのようにしますが、一度しか呼び出されないようにします。
ご指摘いただきありがとうございます。