这是一个非常简单的蓝图/控制器:
maintenance_controller = Blueprint('maintenance', __name__, url_prefix='/maintenance')
@maintenance_controller.route('/csv', methods=['GET','POST'])
def csv():
return render_template('/maintenance/csv.html')
然后,在csv.html
中:
<form action="{{ url_for('csv') }}">
...
</form>
但是,这会产生一个异常:
werkzeug.routing.BuildError
BuildError: ('/csv', {}, None)
我错过了什么?
您需要给出一个蓝图相对路径:
<form action="{{ url_for('.csv') }}">
,前提是模板在同一个蓝图中。对于蓝图之外的模板,您需要包含蓝图名称:
<form action="{{ url_for('maintenance.csv') }}">
请参阅蓝图文档中的构建url 部分。