2017-12-22 26 views
0

パラメータを取るデコレータを組み合わせる方法は?フラスコ - カスタムルートデコレータ

現在、私が持っている:

@app.route('/create/<id>', methods=['POST']) 
@requiresAdmin 
def create_room(id): 
    pass 

@app.route('/join/<id>') 
@requiresAdmin 
def join_room(id): 
    pass 

私が持っているしたいと思います:

@adminRoute('/create/<id>', methods=['POST']) 
def create_room(id): 
    pass 

@adminRoute('/join/<id>') 
def join_room(id): 
    pass 

答えて

0
def adminRoute(*route_args, **route_kwargs): 

    def outer(action_function): 
     @app.route(*route_args, **route_kwargs) 
     @requiresAdmin 
     @functools.wraps(action_function) 
     def inner(*f_args, **f_kwargs): 
      return action_function(f_args, f_kwargs) 
     return inner 

    return outer