Dar*_*ech 24 python werkzeug 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
Run Code Online (Sandbox Code Playgroud)
moo*_*odh 50
使用path转换器捕获任意长度路径:<path:path>将捕获路径并将其传递给path参数.默认转换器捕获单个字符串但停在斜杠处,这就是您的第一个网址匹配但第二个网址不匹配的原因.
如果还要匹配根目录(前导斜杠和空路径),则可以添加另一个规则来设置path参数的默认值.
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def get_dir(path):
return path
Run Code Online (Sandbox Code Playgroud)
还有其他内置转换器,如int和float,并且可以编写自己的转换器以用于更复杂的情况.