Flask werkzeug.routing.BuildError 如果端点方法名称与路由不同

Flask werkzeug.routing.BuildError if endpoint method name not same as route

我正在使用带有蓝图的 Flask 来构建路由端点。 以下工作正常:

@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: Could not build url for endpoint 'my_view.send_email'."

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

为什么我需要将方法命名为与路由相同才能起作用?

url_for使用函数name构造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 了解 Flask 路由如何工作的详细解释。