Flask Blueprint方法没有收到Jinja参数

时间:2017-09-15 12:35:58

标签: python flask jinja2

我的Blueprint方法在方法中输入参数后立即失败:

TypeError: get_streetreport() missing 1 required positional argument: 'number'

来自Jinja:

<form class="form-horizontal" action = "{{ url_for('street_reports.get_streetreport', number=number) }}" method="post">

仅供参考,我可以看到在同一个调用页面上可以访问变量号:

<p>You have entered "{{ number }}" in the property name/number field on the previous page.</p>

这个Blueprint方法叫做:

@street_report_blueprint.route('/street_report', methods=['POST', 'GET'])
def get_streetreport(number):
    mainselection = request.form['MainlistRadios']
    return render_template('street_reports/street_report.jinja2', mainselection = mainselection)

如果我从get_streetreport()中删除参数,页面会在本地主机上正常加载。 &#39;数&#39;是一个字符串变量。任何帮助。

1 个答案:

答案 0 :(得分:0)

更新:您需要在路径路径中声明参数。

@street_report_blueprint.route('/street_report/<number>', …)

如果number预期为整数,则为.../<int:number>

请参阅http://flask.pocoo.org/docs/0.12/quickstart/#variable-rules

  

要将可变部分添加到URL,您可以将这些特殊部分标记为。然后将这样的部分作为关键字参数传递给您的函数。可选地,可以通过指定规则来使用转换器。

您需要将number参数传递给render_template

return render_template(....., number=number)