flask使用URL获取带有特殊字符和空格的参数



我使用flask URL从前到后获取参数,并将其传递给查询,它可以很好地处理没有任何特殊字符或空格的简单字符串。然而,当我传递"历史数据CBD_ 3(10WAY_10.0mWx59.0mW:28(">,它不起作用。(具有特殊字符((的字符串。:和空白(

我在Linux上运行它。我在窗户上测试了一下,结果很好。

front 
@app.route('/design/<string:des>')
callback
/design/Historic_Intersection%20CBD_3%20(3WAY_6.0mWx5.0mW:10) 

我认为URL编码是个问题,有什么建议吗?

请参阅urlib.parse中的quoteunquote。https://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote

基本上,URL中不能有特定的字符(比如空格(,所以如果你的URL包含其中一个坏字符,它就会被替换,这就是你所观察到的。quote函数接受任何字符串并为您提供其URL版本。unquote接受URL版本并返回原始版本。

如果您需要在查询参数中执行同样的操作,请改用quote_plusunquote_plus

您可以使用$.ajax({data: data})传递url,而不是使用url传递

let data_to_back = "Historic_data CBD_3 (10WAY_10.0mWx59.0mW:28)"
$.ajax({
type: 'GET',
url: 'pass/design/',
dataType: "json",
data: data)}

最新更新