La pregunta aquí podría repetirse, pero no pude obtener una solución de ningún material disponible en línea. Estoy tratando de obtener el valor de la lista desplegable seleccionada como una cadena, para que luego, en función del elemento seleccionado, pueda seleccionar el tipo de gráfico que se mostrará. Pero recibo un error de 'formulario'.
Código HTML de la forma:
<form action="{{ url_for('visualize') }}" method="GET"> Select one from the given options: <select name="plots"> <option value="{{Selected_plot[0]}}" selected>{{Selected_plot[0]}}</option> {% for plots in Selected_plot[1:] %} <option value="{{plots}}">{{plots}}</option> {% endfor %} </select> <input type="submit" value="Submit" /> </form>código pitón:
@app.route('/') def home(): Selected_plot = ['Scatter plot', 'Line Plot','Box Plot'] return render_template('homepage.html' ) @app.route('/visualize', methods=['POST', 'GET'] ) def visualize(): """Renders the contact page.""" if request.method == "GET": plot_selected = str(request.form['plots']) if plot_selected == 'Scatter plot': #Scatter plot code elif plot_selected == 'Line Plot': # Line plot code else: # Box plot codeGracias a la Comunidad de antemano.
Probar
request.values.get("plots", <default_value>)
Nota: <valor_predeterminado> es el valor que desea que tenga si el programa no puede encontrar la variable "traza". Puede omitirlo si está seguro de que siempre enviará la variable plots.
La ventaja de este formato ( request.values.get ) es que funcionará tanto con POST como con GET (es decir, datos de formularios pasados a través de POST/cuerpo de formulario o simplemente una cadena de consulta)