我正在使用 Flask 开发一个迷你 API 后端,我有以下 URL:
@app.route('/v1.0/post/check/<path:url>')
def check(url):
print url
//do some works
API 调用示例如下所示:
/v1.0/post/check/http://exampleside.com/enter1/index.php?app=forum&act=threadview&tid=14066185
我期望的是在代码中获取并打印URL字符串'http://exampleside.com/enter1/index.php?app=forum&act=threadview&tid=14066185'
,但实际上,我真正得到的只是'http://exampleside.com/enter1/index.php'
Flask 似乎考虑了'?'和 '&' 作为特殊字符,然后自动拆分 URL。那么我应该怎么做才能在 Flask 中获取整个 URL?
最佳答案
您正在尝试传递一个 url,包括 url 上的请求参数。
你有两个选择。
聪明的做法是在构建 URL 时对 URL 的那部分进行 urlencode。这将安全地编码?和 & 符号。
这是一个示例,您可以判断是否如此。这:
Foo?g=one&two=2
看起来像这样:
Foo%3Fg%3Done%26two%3D2
那将是您的 api 的 uri 的最后一部分。
第二个是从 flask 拆分的所有参数中重建值。但这让我印象深刻。
关于python - Flask如何处理URL中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34700749/