比如:
def required ( x ):
def decorator ( f ):
def wrapper (*args, **kws ):
if x:
return f(*args, **kws)
else:
abort
return wrapper
return decoator
@app.route('/')
@required(x)
def main():
return
那么我访问, http ://localhost : 5000 时,如何像 required 传递参数呢? 可以直接通过在装饰器里获取参数吗?比如:
request.args.get('x')
1
strahe 2016-03-22 10:06:07 +08:00
可以直接通过在装饰器里获取参数,但是就没必要写带参数的装饰器了,因为你是在里面获取参数的,而不需要外面传进去,
|
2
strahe 2016-03-22 10:08:36 +08:00
可以把
x = request.args.get('x') 写到 wrapper 里面,把最面外那一层去掉, 也可以在调用 required 时传入: `@required(x)` |
3
Mithrandir 2016-03-22 10:20:40 +08:00
|
4
hahastudio 2016-03-22 10:38:19 +08:00
如果你想自定义参数的话,可以试试
https://gist.github.com/hahastudio/426a750fb4c7a4beb210 |