首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >捕获Flask路由中的任意路径

捕获Flask路由中的任意路径
EN

Stack Overflow用户
提问于 2013-02-28 00:39:47
回答 1查看 23.5K关注 0票数 38

我有一个简单的Flask路由,我想要捕获一个文件的路径。如果我在规则中使用<path>,它对/get_dir/one有效,但对/get_dir/one/two无效。如何捕获任意路径,以便将path='/one/two/etc传递给视图函数?

代码语言:javascript
复制
@app.route('/get_dir/<path>')
def get_dir(path):
    return path
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-28 00:41:40

使用path转换器捕获任意长度的路径:<path:path>将捕获路径并将其传递给path参数。默认转换器捕获单个字符串,但仅限于斜杠,这就是为什么您的第一个url匹配而第二个不匹配的原因。

如果您还想匹配根目录(前导斜杠和空路径),您可以为add another rule参数设置默认值。

代码语言:javascript
复制
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def get_dir(path):
    return path

还有其他的built-in converters,比如intfloat,对于更复杂的情况也可以使用write your own

票数 75
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15117416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档