WSGI + Werkzeug 애플리케이션의 뷰에 "login_required"데코레이터를 쓰려고합니다.파이썬 - 데코레이터의 원래 함수 인수 얻기
이렇게하려면 뷰 메서드에 전달되는 Request 개체를 통해 액세스 할 수있는 사용자 세션에 있어야합니다.
데코레이터에서 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"데코레이터의 "hello"기능에 전달 된 요청 인수에 액세스 할 수있는 방법이 있습니까?
완벽한 :
그래서 당신이해야 할 모든 체크입니다! 나는 "노출"데코레이터에서 사용 된 다른 구문을 사용하고있었습니다. 대체 구문을 이해할 수 있는지 잘 모르겠습니다. – ashgromnies