Bir WSGI + Werkzeug uygulamasında görünümler için "login_required" bir dekoratör yazmaya çalışıyorum.Python - Özgün işlev argümanlarını dekoratörde alın
Bunu yapmak için, görüntüleme yöntemine iletilen Request nesnesine erişilebilen kullanıcının oturumuna erişmem gerekiyor.
Dekoratördeki Request örneğine nasıl ulaşılacağını anlayamıyorum. PEP318'e, özellikle de dördüncü örneğe baktım ama tam anlamıyorum.
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)
ama args[0]
aramaya çalışıyorum sınırları hata dışına bir dizin olsun:
İşte çalıştığım şey.
"login_required" dekoratöründe "merhaba" işlevine iletilen istek değişkenine erişebilmemin herhangi bir yolu var mı?
Mükemmel:
Yani yapmanız gereken çek! "Expose" dekoratöründe kullanılan farklı bir sözdizimi kullanıyordum - alternatif sözdizimini anladığımdan emin değilim. – ashgromnies