es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Aplicación web de Python con Flask, actualizando la etiqueta de imagen en la vista con la etiqueta de botón

Estoy desarrollando una aplicación web usando Python y Flask. Quiero mostrar una imagen utilizando una etiqueta de imagen HTML y una etiqueta de botón para abrir el navegador y elegir una imagen, y luego mostrarla dentro de la etiqueta de actualizándola usando Jinja. ¿Cómo podría hacer eso?

main.py:

”’
image_filepath = ”

def browse_img_file():
global image_filepath
path = easygui.fileopenbox(msg=””, title=”choose an image”, multiple=False, filetypes=[‘.png’, ‘.jpg’, ‘.gif’])
image_filepath = path

@app.route(“/”)
def index():
global image_filepath
if image_filepath == ”:
image_load = url_for(‘static’, filename=’/images/no-img.png’)
else:
image_load = image_filepath
return render_template(“index.html”, image=image_load)

@app.route(“/upload”)
def upload():
global image_filepath
try:
browse_img_file()
except:
pass
finally:
return redirect(url_for(“index”))
”’

index.html:

”’

Elige tu imagen.



”’

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para mostrar una imagen utilizando una etiqueta image de HTML y una etiqueta button en una aplicación web Flask, puedes seguir estos pasos:

    1. Crea una variable global llamada image_filepath para almacenar la ruta del archivo de imagen seleccionado.
    2. Escribe una función llamada browse_img_file() para abrir un cuadro de diálogo de archivo que permita al usuario seleccionar un archivo de imagen. Una vez seleccionado el archivo, la ruta se guarda en la variable image_filepath.

    3. Define una ruta para la página de inicio (@app.route("/")) y renderiza la plantilla index.html. En esta ruta, verifica si image_filepath está vacío. Si lo está, muestra una imagen predeterminada utilizando la función url_for para obtener la ruta al archivo de imagen estática. Si image_filepath contiene una ruta, utiliza esa ruta para mostrar la imagen seleccionada.

    4. Define una ruta para cargar la imagen (@app.route("/upload")). En esta ruta, llama a la función browse_img_file() para permitir al usuario seleccionar un archivo de imagen. Una vez seleccionado un archivo, redirige al usuario de vuelta a la página de inicio (redirect(url_for("index"))).

    5. En la plantilla index.html, utiliza una etiqueta image de HTML para mostrar la imagen seleccionada o la imagen predeterminada. Utiliza Jinja para actualizar el atributo src de la etiqueta image con la ruta de la imagen seleccionada. Además, utiliza una etiqueta a de HTML y una etiqueta button para crear un botón que lance el cuadro de diálogo de archivo al hacer clic. Utiliza la función url_for para obtener la ruta a la ruta upload.

    Con estos cambios implementados, los usuarios podrán seleccionar un archivo de imagen utilizando el cuadro de diálogo de archivo, y la imagen seleccionada se mostrará en la página de inicio de la aplicación web.

Comments are closed.