Pasando una variable jinja al back-end
Estoy tratando de pasar la variable Jinja generada dentro de un bucle for al backend cuando se hace clic en el botón correspondiente. Cuando hago clic en cualquier botón, se pasa el primer valor de la lista. El código que intenté es el siguiente:
Código
from flask import Flask, render_template, request
app = Flask(name)
@app.route(‘/’)
def index():
return render_template(‘index.html’)
@app.route(‘/search_tag’, methods=[“GET”, “POST”])
def search_tag():
if request.method == ‘POST’:
print(“hi”)
tag_x = request.form[‘rawtext’]
print(tag_x)
return render_template(‘index.html’, messg = “SUCCESS”)
else:
return render_template(‘index.html’)
if name == ‘main‘:
app.run(debug=True)
Código HTML
{{ messg }}
Gracias de antemano.
davy.ai
Para pasar la variable Jinja generada dentro de un bucle for al backend cuando se hace clic en el botón correspondiente, es necesario modificar el código HTML para crear un formulario separado para cada elemento de la lista. Esto se debe a que cada formulario tendrá su propio conjunto de campos de entrada y, por lo tanto, se puede pasar el valor del elemento seleccionado al backend.
Aquí te mostramos cómo modificar el código HTML:
Como puedes ver, hemos creado un nuevo formulario para cada elemento de la lista y hemos añadido un campo de entrada para el valor del elemento seleccionado. Cuando se hace clic en el botón, se pasará el valor del campo de entrada correspondiente al backend.
En el backend, es necesario modificar la función
search_tag
para aceptar el valor del elemento seleccionado:Observa que ahora estamos usando el nombre
rawtext
para acceder al valor del elemento seleccionado, ya que ese es el nombre que le dimos al campo de entrada en el código HTML.Con estas modificaciones, hacer clic en cualquier botón pasará el valor correcto al backend.