【问题标题】:Flask path routing parameter globs dot between two forward slashesFlask 路径路由参数在两个正斜杠之间的圆点
【发布时间】:2015-11-25 15:20:34
【问题描述】:

我正在尝试从烧瓶请求中捕获 url。一切正常,除非网址在两个正斜杠之间有一个点,例如: http://met.no/Nyheter/./Fase+C:+Ekstremværet+Petra+pågår.b7C_xdrSX6.ips

使用的路线如下:

@app.route('/url/<path:url>', methods=['GET'])
def get_url(url):
    return url

使用 curl 查询服务器:

curl localhost:5000/url/http://met.no/Nyheter/./Fase+C:+Ekstremværet+Petra+pågår.b7C_xdrSX6.ips

然后回应:

http://met.no/Nyheter/Fase+C:+Ekstremværet+Petra+pågår.b7C_xdrSX6.ips

我知道烧瓶以某种方式解析相对 url 和 ./ 可能意味着当前目录,但我怎样才能使它按原样获取 url?

【问题讨论】:

  • 我在你的网址中看不到 /url/
  • 我已将问题更新为更清晰。

标签: python flask


【解决方案1】:

在收到烧瓶邮件列表的回复后,我意识到一些客户在发送之前尝试解析 url。

我的 curl 版本似乎和 Chrome 一样,但是使用 CocoaRestClient 例如返回预期:

http://met.no/Nyheter/./Fase+C:+Ekstremværet+Petra+pågår.b7C_xdrSX6.ips

【讨论】:

  • 是的,这是正确的答案。在正确的 URL 中 /./ 是完全没有必要的,点表示同一目录。因此客户将其删除(包括 CURL、Chrome 和 wget)。不应该创建依赖于中间点的此类网站,因为a.coma.com/. 是完全等价的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-29
  • 2016-11-20
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
相关资源
最近更新 更多