2017-12-22 35 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