D
Devraj
Hi all,
I am trying to simply my Web application handlers, by using Python
decorators.
Essentially I want to use decorators to abstract code that checks for
authenticated sessions and the other that checks to see if the cache
provider (Memcache in this instance) has a suitable response.
Consider this method definition with the decorators:
@auth.login_required
@cache.clear
def post(self, facility_type_id = None):
auth.login_required checks to see if the user is logged in, otherwise
returns an appropriate error message, or executes the original
function.
cache.clear would check to to see if the cache has a particular key
and drop that, before it executes the calling method.
Both auth.login_required and cache.clear would want to eventually
execute the calling method (post).
From what I've read both, doing what I am doing now would execute the
calling method (post) twice.
My question, how do I chain decorators that end up executing the
calling method, but ensure that it's only called once.
Appreciate any pointers and thanks for your time.
I am trying to simply my Web application handlers, by using Python
decorators.
Essentially I want to use decorators to abstract code that checks for
authenticated sessions and the other that checks to see if the cache
provider (Memcache in this instance) has a suitable response.
Consider this method definition with the decorators:
@auth.login_required
@cache.clear
def post(self, facility_type_id = None):
auth.login_required checks to see if the user is logged in, otherwise
returns an appropriate error message, or executes the original
function.
cache.clear would check to to see if the cache has a particular key
and drop that, before it executes the calling method.
Both auth.login_required and cache.clear would want to eventually
execute the calling method (post).
From what I've read both, doing what I am doing now would execute the
calling method (post) twice.
My question, how do I chain decorators that end up executing the
calling method, but ensure that it's only called once.
Appreciate any pointers and thanks for your time.