Ich möchte eine Web-Konfigurations-App für ein displayloses Gerät (mit Raspberry Pi) schreiben.
Anfangs lief das ganz gut, jetzt hänge ich bei dem Thema die vom Benutzer selektierte Auswahl in das Formular zu übernehmen.
Finde im Netz leider immer nur das User-Login-Beispiel, was mit hier aber nicht weiterhilft...
Mein Problem ist, dass beim Drücken des "submit" bzw. "save"-buttons wieder das ursprüngliche Formular erscheint (mit den default Selektionen).
Ich möchte aber, dass das Formular auch nach dem submit die ausgewählten Auswahlen beibehält.
Wie kann ich das realisieren ?
Bestimmt 'ne Anfängerfrage und ganz einfach. Aber ich hab schon viel gesucht und ausprobiert und krieg es einfach nicht hin
Würde mich freuen, wenn mir hier jemand auf die Sprünge hilft.
Im Voraus schon vielen Dank an alle Helfer.
Habe die sourcen mal auf das absolut notwendige reduziert:
forms.py:
Code: Alles auswählen
from flask_wtf import FlaskForm
from wtforms import SelectField, SubmitField
class ConfigForm(FlaskForm):
function_s1_1 = SelectField('Funktion 1:')
function_s1_2 = SelectField('Funktion 2:')
function_s1_3 = SelectField('Funktion 3:')
submit = SubmitField('Save')
Code: Alles auswählen
from flask import render_template, flash, redirect, url_for, request
from app import app
from app.forms import ConfigForm
functions = ["NoteOn" , "NoteOff" , "PageUp" , "PageDown" ]
functionentries = []
for i in range (0, 4):
functionentries.append((str(i), functions[i]))
@app.route('/', methods=['GET', 'POST'])
def config():
form = ConfigForm()
form.function_s1_1.choices=functionentries
form.function_s1_2.choices=functionentries
form.function_s1_3.choices=functionentries
if request.method == 'GET':
return render_template('config.html', title='Config Page', form=form)
if request.method == 'POST':
sel_funct1 = request.form.get('function_s1_1')
sel_funct2 = request.form.get('function_s1_2')
sel_funct3 = request.form.get('function_s1_3')
print(sel_funct1, sel_funct2, sel_funct3)
return redirect(url_for('config'))
Code: Alles auswählen
{% extends "base.html" %}
{% block content %}
<form action="" method="post">
{{ form.hidden_tag() }}
<div style="text-indent:10px;">
<h3>Switch 1</h3>
<p>
{{ form.function_s1_1.label }}
{{ form.function_s1_1 }}
</p>
<p>
{{ form.function_s1_2.label }}
{{ form.function_s1_2 }}
</p>
<p>
{{ form.function_s1_3.label }}
{{ form.function_s1_3 }}
</p>
<p>{{ form.submit() }}</p>
</div>
</form>
{% endblock %}