Python 带空格的flask url参数生成带空格的url

Python 带空格的flask url参数生成带空格的url,python,url,flask,url-routing,percent-encoding,Python,Url,Flask,Url Routing,Percent Encoding,我正在尝试将用户提供的字符串作为Flask URL参数传递。 url\u for(func\u name,param=“string with spaces”)或类似工具生成带有空格的url 如果用户输入一个带有空格的字符串,那么生成的url中就有空格,这似乎有效 另外,如果输入带有%20的URL,它似乎会重定向到带有空格的URL。 我认为带有空格的URL是个坏主意 如何使其正常工作(url\u用于和重定向)? 还是我应该接受它 附言。 将用户提供的字符串作为参数传递是否安全?如果没有,我应该如

我正在尝试将用户提供的字符串作为Flask URL参数传递。
url\u for(func\u name,param=“string with spaces”)
或类似工具生成带有空格的url

如果用户输入一个带有空格的字符串,那么生成的url中就有空格,这似乎有效

另外,如果输入带有
%20
的URL,它似乎会重定向到带有空格的URL。 我认为带有空格的URL是个坏主意

如何使其正常工作(
url\u用于
和重定向)? 还是我应该接受它

附言。
将用户提供的字符串作为参数传递是否安全?如果没有,我应该如何清理用户输入字符串?

否,Flask生成正确URL编码的URL;正在使用现有应用程序演示:

>>> with app.test_request_context('/'):
...     print url_for('core.city', city='new york')
... 
/new%20york
另一方面,您的浏览器可能会选择显示解码后的URL,以便于阅读


url\u for()
引用输入以确保url安全;编码的URL不能包含可以解释为HTML的值,因此就用户提供的值而言,您在那里是安全的。

这是显示空间的浏览器;一切正常。我只是尝试复制/粘贴,看起来你是对的。当我将随机垃圾添加到显示请求的404页面末尾时。url的空间不是%20秒。奇怪的