私はデコレータを持っていますが、newname
パスしprotected()
て見せたいのですが、どうすればよいですか?
場合name='Jan'
とデコレータにnewname
等しくJan hello!!!
し、その後newname
することが可能print(newname)
に使用されますprotected()
私のコード
app.py
@app.route('/protected')
@lookname
def protected():
return jsonify({'message': 'This is only available for people with valid tokens!'})
lookname.py
def lookname(f):
@wraps(f)
def decorated(*args, **kwargs):
name = request.cookies.get('name')
newname = name + ' hello!!!'
return f(*args, **kwargs)
return decorated
これが好きです
@app.route('/protected')
@lookname
def protected():
print(newname)
return jsonify({'message': 'This is only available for people with valid tokens!'})
を使用g
して、リクエストコンテキストにバインドされた情報のビットを運ぶことができます。
from flask import g
def lookname(f):
@wraps(f)
def decorated(*args, **kwargs):
name = request.cookies.get('name')
g.newname = name + ' hello!!!'
return f(*args, **kwargs)
return decorated
そして次にprotected
:
from flask import g
@app.route('/protected')
@lookname
def protected():
print(g.newname)
# ...
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加