python - Flask如何处理URL中的特殊字符

标签 python url web flask

我正在使用 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/

相关文章:

python - 使用 Pandas 计算一组计数的情况

java - 自定义 URL 方案作为现有 URL 方案的适配器

html - 单选按钮的CSS背景图像未显示

javascript - 使用 jquery 或 javascript 将 url 参数传递给 iframe

html - 我的 index.html 文件应该是文本文件吗?

html - 为什么我的 style.css 更新仅在执行硬刷新时反射(reflect)出来,而在之后刷新时恢复到以前的版本?

python - GEKKO 中的 FOPDT 方程组 - 使用多个输入

python - centos 7 上的 Python 3.6 中缺少 turtle 图形模块?

python - readframes 在 python 中返回 2 个字节

java - 将testNG xml文件放在ANT java web项目中的什么地方