我有一个简单的 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 匹配但第二个不匹配的原因。
如果您还想匹配根目录(前导斜杠和空路径),您可以添加另一个为路径参数设置默认值的规则。
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def get_dir(path):
return path