Cuando estemos creando servicios Rest en Python Flask se puede dar el caso de necesitar subir un fichero a un servicio. En este caso es posible que haya que enviar un path al servicio. Y qué quiere decir que pasemos un path como variable a un servicio Flask, pues que la estructura de la variable path puede confundirse con el Path propio del servicio. En este ejemplo vamos a ver como podemos pasar un Path en PythonFlask.
Si ya has instalado el microframework Flask:
pip install Flask
Y has creado tu aplicación Flask:
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.run()
Deberas crear una ruta que acepte el path como variable de la petición en el endpoint.
@app.route('/fichero/',methods=['GET'])
def fichero(ruta):
return 'Ruta del fichero ' + ruta
El problema de crear esta ruta con el método .route()
es que Flask va a ignorar variables del tipo '/fichero/directorio/subdirectorio/fichero.png' ya que se confunde con el path del endpoint.
Para poder solucionarlo deberemos de indicar que la variable es de tipo Path. Así codificaremos nuestra ruta en Flask de la siguiente forma:
@app.route('/fichero/',methods=['GET'])
def fichero(ruta):
return 'Ruta del fichero ' + ruta
Así ya podremos pasar un Path en Python Flask y subir la ruta de un fichero a nuestro servicio Flask.