2014-09-12 2 views
0

Flask Blueprints를 사용하여 동적 런타임 경로를 추가하려고합니다. add_url_rule()을 호출하고 일부 데이터를보기로 전달합니다.Flask add_url_rule 옵션을 사용하면 예기치 않은 키워드 인수가 throw됩니다.

def add_special_route(route_url, data): 
    myblueprint.add_url_rule(route_url, view_func=my_special_view_function, specialparameter=data) 

def my_special_view_function(specialparameter): 
    return specialparameter.some_string_x 

컴파일러는 특수 매개 변수를 선호하지 않습니다. 오류는 unexpected keyword argument입니다. add_url_rule의 ** 옵션 kwargs에 들어가기를 기대하고있었습니다.

** 옵션을 사용하는 예를 보려면 문서를 살펴 보았습니다. 별로.

내가 뭘 잘못하고 있니? 뷰에 대한

+0

'special 매개 변수 '를 기본값으로 설정 한 규칙을'data'를 사용하여 추가하겠습니까? –

+0

예 - 특수 매개 변수의 기본값을 데이터로 설정합니다. – 010110110101

+0

옵션을 잘못 사용하고 있습니다. doc에 따르면 "기본 Rule 개체로 전달할 옵션입니다. Werkzeug를 변경하면 메서드 옵션을 처리합니다. 메서드는이 규칙을 GET, POST 등으로 제한해야하는 메서드 목록입니다." –

답변

1

기본 매개 변수는 defaults 키워드 인수를 사전에 전달해야합니다

def add_special_route(route_url, data): 
    myblueprint.add_url_rule(
     route_url, view_func=my_special_view_function, 
     defaults={'specialparameter': data}) 

URL Route Registrations documentation를 참조하십시오.

관련 문제