「auth」という名前のデコレータがあります
def auth(check_func=validate_login):
def decorator(view):
def wrapper(*args, **kwargs):
auth = check_func()
if auth:
return view(*args, **kwargs)
return bottle.redirect('/login.html')
return wrapper
return decorator
auth
デコレータはこのように使用されます
@get('/')
@view("someview")
@auth()
def handler():
#myhandlercode
そのため、auth
デコレータview
は私のテンプレートを bottle.py にレンダリングする関数を呼び出します。しかし、今はレンダリングする代わりにjsonを返したいview
. これを実現するには、デコレータ コードにどのような変更を加える必要がありauth
ますか? view
認証コードからの代わりにハンドラーを呼び出す方法について混乱しています。
編集 1: ボトルを使用すると、dict を返すことができます。直接 json に変換します。そして、ビューをまったく使用したくありません。ハンドラーからjsonをユーザーに返したいだけです。@viewデコレータを削除するだけですか?認証デコレータで代わりに何を呼び出す必要がありますか?