2015-06-14 2 views
-2

я определил метод проверки пользователя:Использование декораторов проверить вход пользователя в фляжку?

from functools import wraps 

def check_user(func): 
    @wraps(func) 
    def wrapper(*args, **kwargs): 
     if session['logged_in']: 
      return func(*args, **kwargs) 
     else: 
      return '<a href="/#/login">Log in</a>' 
    return wrapper 

@app.route('/test') 
@check_user 
def test(): 
    return "Hello" 

Это не работает. как я могу это исправить?

+0

Да, это не работает сейчас. Как я буду это делать? –

ответ

2

Кажется, вы не знаете, как создавать декораторы в python. Есть много полезных ответов на этот вопрос:. How can I make a chain of function decorators in Python?

Ниже, как вы можете создать декоратор, который проверяет, если пользователь вошел в систему

from functools import wraps 

def checkuser(func): 
    """Checks whether user is logged in or raises error 401.""" 
    @wraps(func) 
    def wrapper(*args, **kwargs): 
     if not g.user: 
      abort(401) 
     return func(*args, **kwargs) 
    return wrapper 

Декоратор выше поднимет ошибку 401, если пользователь не вошел в систему. В противном случае он вернет функцию просмотра.

Смежные вопросы