EDIT2:对于缺乏清晰度,我深表歉意。我将提供几个值。第一个是我使用前端应用程序调用的 URL。第二个是调用之前的值urllib.unquote
。第三个是调用后的值urlib.unquote
。
前端:
console.log('http://localhost:8080/v1/' + encodeURIComponent(name))
Run Code Online (Sandbox Code Playgroud)
后端:
def f(param=''):
print('*', param)
param = urllib.unquote(param)
print('**', param)
Run Code Online (Sandbox Code Playgroud)
前任。
http://localhost:8080/v1/https%3A%2F%2Fgoogle.com
* https:%2F%2Fgoogle.com
** https://google.com
Run Code Online (Sandbox Code Playgroud)
例 2.
http://localhost:8080/v1/foo%2520bar
* foo%20bar
** foo bar
Run Code Online (Sandbox Code Playgroud)
例 3.
http://localhost:8080/v1/foo%20bar
* foo bar
** foo bar
Run Code Online (Sandbox Code Playgroud)
感谢您对此的耐心和帮助。对于我原来的帖子中不清楚的地方,我深表歉意。
编辑:简而言之,如果我调用/v1/%2520
, param 等于" "
在函数末尾,而不是"%20"
,在函数开头它等于"%20"
而不是"%2520"
。
我目前正在使用 Python 2.7 开发 Flask 应用程序。
我正在尝试创建一个可以处理 URL 参数的函数。
@app.route('/v1/<param>', methods=['DELETE'])
def f(param=''):
param = urllib.unquote(param)
Run Code Online (Sandbox Code Playgroud)
在我的前端应用程序中,我通过编码param
. 但是,如果我将"foo bar" …