python - example - werkzeug traduccion
Captura de ruta arbitraria en ruta matraz (1)
Tengo una ruta Flask simple que quiero capturar una ruta a un archivo. Si uso <path>
en la regla, funciona para /get_dir/one
pero no /get_dir/one/two
. ¿Cómo puedo capturar una ruta arbitraria, para que la path=''/one/two/etc
se pase a la función de vista?
@app.route(''/get_dir/<path>'')
def get_dir(path):
return path
Use el convertidor de path
para capturar rutas de longitud arbitraria: <path:path>
capturará una ruta y la pasará al argumento de la path
. El convertidor predeterminado captura una sola cadena pero se detiene en barras, por lo que su primera URL coincidió pero la segunda no.
Si también desea hacer coincidir el directorio raíz (una barra diagonal y una ruta vacía), puede agregar otra regla que establezca un valor predeterminado para el argumento de la ruta.
@app.route(''/'', defaults={''path'': ''''})
@app.route(''/<path:path>'')
def get_dir(path):
return path
Hay otros convertidores integrados , como int
y float
, y es posible escribir los suyos también para casos más complejos.