2016-03-18 4 views
0

Я использую Flask с чертежами для создания конечных точек маршрутизации. следующие работы: тонкиеFlask werkzeug.routing.BuildError, если имя метода конечной точки не совпадает с маршрутом

@my_view.route('/send_email', methods=['GET', 'POST']) 
def send_email(): 
    print(">>send_email()") 

WTF форма:

<form role="form" action="{{ url_for('my_view.send_email') }}" method="post"> 

Однако если изменить имя метода, например, как показано ниже, я получаю сообщение об ошибке «werkzeug.routing.BuildError: Не удалось построить URL для endpoint 'my_view.send_email'. "

@my_view.route('/send_email', methods=['GET', 'POST']) 
def some_other_method_name(): 
    print(">>some_other_method_name()") 

Почему я должен назвать метод таким же, как маршрут для этого?

ответ

1

url_for использует функцию имя, чтобы построить путь по URL. изменить

<form role="form" action="{{ url_for('my_view.send_email') }}" method="post"> 

в

<form role="form" action="{{ url_for('my_view.some_other_method_name') }}" method="post"> 

и вы должны быть хорошо идти. См. here для подробного объяснения того, как работает фляжка.

 Смежные вопросы

  • Нет связанных вопросов^_^