
比如:
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 |