2012-09-06 50 views

回答

0

我只需將sensitive_information修飾符複製到本地decorators.py文件中,然後使用它。

import functools 


def sensitive_variables(*variables): 
""" 
Indicates which variables used in the decorated function are sensitive, so 
that those variables can later be treated in a special way, for example 
by hiding them when logging unhandled exceptions. 

Two forms are accepted: 

* with specified variable names: 

    @sensitive_variables('user', 'password', 'credit_card') 
    def my_function(user): 
     password = user.pass_word 
     credit_card = user.credit_card_number 
     ... 

* without any specified variable names, in which case it is assumed that 
    all variables are considered sensitive: 

    @sensitive_variables() 
    def my_function() 
     ... 
""" 
def decorator(func): 
    @functools.wraps(func) 
    def wrapper(*args, **kwargs): 
     if variables: 
      wrapper.sensitive_variables = variables 
     else: 
      wrapper.sensitive_variables = '__ALL__' 
     return func(*args, **kwargs) 
    return wrapper 
return decorator 

用法:

@sensitive_variables('user', 'pw', 'cc') 
def my_view(request): 
    pass 

那就需要functools.py太多,這將不附帶默認的python2.4(我猜) - 您可能必須單獨包括文件。

+0

我以前曾經試過你說過的。問題是python 2.4不支持functools。 – shiva