所以我使用此代码从我的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
为什么?
答案 0 :(得分:3)
=
是reserved character in URLs,Flask正好URL percent encoding为%3D
的角色。它是一个保留字符,因为它在path parameters和query strings中具有特殊含义。
您的浏览器和Flask仍会正确处理该角色。
请注意,Flask不支持具有路径参数的路由(路径元素之后的键值对,由;
冒号分隔),其中=
将是有效的分隔符;相反,您通常直接使用路径元素作为参数。如果您真的想要,可以编写custom converter来捕获(;key(=value)?)*
模式。
答案 1 :(得分:0)
%3D
是=
的百分比编码代码。 Flask对等号进行编码,因为这是标准惯例。浏览器仍然正确地解释了这一点。