【问题标题】:Python Bottle: Router unable to match wildcard filter in the middle of a URLPython Bottle:路由器无法匹配 URL 中间的通配符过滤器
【发布时间】:2015-03-04 23:13:42
【问题描述】:

我正在尝试使用 :path 通配符过滤器(如 here 所述)来匹配我的部分 URL,其中包括正斜杠字符。例如,如果我有 URL:

/resources/adfs89s7/container/asdf%2Fasdf/items

(其中 %2F 是正斜杠),我想将它与路由匹配:

/resources/<resource_id>/container/<container_name:path>/items

但是,这当前返回 Not Found 错误。我有类似的 URL,其中通配符过滤器位于 URL 的末尾,例如

/resources/<resource_id>/container/<container_name:path>

这似乎工作正常。有谁知道会发生什么?

【问题讨论】:

  • 如果容器名被转义了,为什么要使用path?没必要。

标签: python bottle


【解决方案1】:

从您的示例中,您的容器名称似乎已转义(应该如此)。在这种情况下,您不需要在 Bottle 路由中使用 path 类型说明符。即,你想要这个:

/resources/<resource_id>/container/<container_name>/items

另外请记住,上述路由不会匹配带有斜杠的路径,所以如果这是一个 RESTful 浏览 API,那么您可能需要创建路由:

/resources/<resource_id>/container/<container_name>/items/

【讨论】:

    猜你喜欢
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多