ここと同じ方法でデコレータを実装し ましたFlaskで引数(承認用)を使用してPythonデコレータ関数を作成する方法 ですが、問題はまだ解決されていません...
私はデコレータでこの機能を持っています
@blueprint.route('<var>')
@blueprint.my_decorator(var)
def function(var):
do stuff
そして私はこのエラーを受け取ります
NameError: global name 'var' is not defined
どうすればこれを解決できますか?
アップデート
ブループリントは、ブループリントクラスを継承するクラスです。だから私はメソッドを実装しました
def my_decorator(self, fn):
@wraps(fn)
def decorator(*args, **kwargs):
value = kwargs['value']
# do stuff with value
return fn(*args, **kwargs)
return decorator
しかし、それでも値は不明なキーです...