Flask-根据提供的输入呈现动态页面URL

时间:2019-04-24 11:50:09

标签: python flask

我正在开发一个Flask项目,该项目具有一个简单的页面,该页面可以从用户那里获取输入并返回输出。我正在尝试查看是否可以获取网页的动态URL。以下是我对此网页的表单和路线:

表格

<form action=""enctype="multipart/form-data"
          method="POST">
        {{form.hidden_tag()}}
<table>
{{ render_field(form.name, size=50) }}
    <tr class="submit">
        <td>
            <button type="submit">Report</button>
        </td>
    </tr>
</table>

观看次数

@app.route('/users', methods=['GET', 'POST'])
def users():
    form = UsersForm()
    if form.validate_on_submit():

        output = user(name=form.name.data)

        return send_file(output, attachment_filename = f'UserReport_{name}.csv', as_attachment=True)

    return render_template('name', form=form)

以上工作正常。

页面URL为www.website.com/name

但是,我试图查看是否可以将网页URL设置为根据在表单(name字段)中输入的值进行动态更改。例如,如果名称为person1,我想将URL设置为www.website.com/name/person1

1 个答案:

答案 0 :(得分:0)

由于您的路由设置为/ users,所以不应该是www.website.com/users/person1吗?

对于动态网址,您可以尝试以下操作

@app.route('/users/<username>', methods=['GET', 'POST'])
def users(username):
...

要访问说/ users / person1,您可以按如下方式使用return redirect

return redirect(url_for("users",username=form.name.data))

相关: How to generate dynamic urls in flask?