在Flask路线中捕获任意路径
我有一个简单的Flask路由,我想捕获文件的路径。如果我<path>
在规则中使用它,则适用于,/get_dir/one
但无效/get_dir/one/two
。如何捕获任意路径,以便path='/one/two/etc
将其传递给视图函数?
@app.route('/get_dir/<path>')def get_dir(path):
return path
回答:
使用path转换器捕获任意长度的路径:<path:path>
将捕获路径并将其传递给path
参数。默认转换器捕获单个字符串,但以斜杠停止,这就是为什么第一个URL匹配而第二个URL不匹配的原因。
如果你还想匹配根目录(斜杠和空路径),则可以添加另一个规则,该规则为path参数设置默认值。
@app.route('/', defaults={'path': ''})@app.route('/<path:path>')
def get_dir(path):
return path
以上是 在Flask路线中捕获任意路径 的全部内容, 来源链接: utcz.com/qa/425068.html