烧瓶没有正确重定向?

时间:2015-07-14 22:00:29

标签: python flask

所以我使用此代码从我的html获取输入,然后将其重定向到另一个函数。

@app.route('/', methods = ['POST'])
def search():
    rsn = request.form['username']
    return redirect(url_for('username', rsn=rsn))

重定向到以下功能:

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

我希望网址是app.route说的那个...所以如果rsn =嘿,网址就是

/username=Hey

但由于某种原因,网址变成了

/username%3DHey

为什么?

2 个答案:

答案 0 :(得分:3)

=reserved character in URLs,Flask正好URL percent encoding%3D的角色。它是一个保留字符,因为它在path parametersquery strings中具有特殊含义。

您的浏览器和Flask仍会正确处理该角色。

请注意,Flask不支持具有路径参数的路由(路径元素之后的键值对,由;冒号分隔),其中=将是有效的分隔符;相反,您通常直接使用路径元素作为参数。如果您真的想要,可以编写custom converter来捕获(;key(=value)?)*模式。

答案 1 :(得分:0)

%3D=的百分比编码代码。 Flask对等号进行编码,因为这是标准惯例。浏览器仍然正确地解释了这一点。