Я пытаюсь написать декоратор «login_required» для представлений в приложении WSGI + Werkzeug.Python - получить исходные аргументы функции в декораторе
Для этого мне нужно перейти на сеанс пользователя, который доступен через объект Request, который передается в методы просмотра.
Я не могу понять, как получить этот экземпляр запроса в декораторе. Я посмотрел на PEP318, в частности на четвертый пример, но я не совсем понял.
Вот что я хочу:
def login_required(*args, **kw):
def goto_login(**kw):
return redirect(url_for('login'))
def decorate(f):
# args[0] should be request
args[0].client_session['test'] = True
logged_in = 0
if logged_in:
return f
else:
return goto_login
return decorate
@login_required()
@expose('/hello/<string:name>')
def hello(request, name):
return render_template('say_hello.html', name=name)
, но я получаю индекс из оценки погрешности, пытаясь вызвать args[0]
.
Есть ли способ получить доступ к аргументу запроса, переданному в функцию «привет» в «login_required» декораторе?
Отлично! Я использовал другой синтаксис, который использовался в «экспорте» декоратора - я не уверен, что понимаю альтернативный синтаксис. – ashgromnies