Python 简单视图装饰器
我正在开发一个验证api令牌的decorator,我的第一个任务是以最小的工作顺序获得decorator:Python 简单视图装饰器,python,decorator,flask,Python,Decorator,Flask,我正在开发一个验证api令牌的decorator,我的第一个任务是以最小的工作顺序获得decorator: def check_token(view_method): @wraps(view_method) def wrapped_view(*args, **kwargs): token = request.args['token'] if token is None: abort(403) return v
def check_token(view_method):
@wraps(view_method)
def wrapped_view(*args, **kwargs):
token = request.args['token']
if token is None:
abort(403)
return view_method(*args, **kwargs)
return wrapped_view
这类工作,即如果提供了令牌,视图工作,但如果没有提供令牌,则会出现400错误请求错误。我想发送403错误,但我还没有意识到这一点
它只返回400错误,这有什么错?如何改进这一点?
请求。args
是一个多目录
,如果请求了一个在目录中不存在的密钥,它就会引发。此处请求。args['token']
在到达中止(403)
之前会引发。以下几种解决方案是:
## If a 2nd optional argument is provided to dict.get then
## it does not raise if key is not found. Instead returns
## the 2nd argument passed as default.
token = request.args.get('token', None)
if not token:
## Error handling
或:
request.args
是一个MultiDict
,如果请求了dict中不存在的密钥,它将引发。此处request.args['token']
在到达中止(403)
之前引发。以下几种解决方案是:
## If a 2nd optional argument is provided to dict.get then
## it does not raise if key is not found. Instead returns
## the 2nd argument passed as default.
token = request.args.get('token', None)
if not token:
## Error handling
或:
可能是因为
token=request.args['token']
本身在到达abort(403)
之前抛出keyrerror
?我的意思是request.args
中没有keytoken
。试试request.args.get('token',None)
,看看这是否有效。这是我现在不知道的,我想,让我们试试。这是有效的,所以如果你回答下面的问题,我会勾选它。请求是一个Werkzeug MultiDict,因此我需要改进我对它和python的理解,谢谢。可能是因为token=request.args['token']
本身在到达abort(403)
之前抛出了keyrerror
?我的意思是request.args
中没有键令牌
。试试request.args.get('token',None)
,看看这是否有效。这是我现在不知道的,我想,让我们试试。这是有效的,所以如果你回答下面的问题,我会勾选它。请求是一个Werkzeug MultiDict,因此我需要改进我对它和python的理解,谢谢。