Я установил flask -wtf Я запускаю скрипт для «постоянного» редактирования логических значений. Это означает, что use может считывать значение (и python будет вводить их по умолчанию в форму, которую увидит пользователь) или может записывать значение (и python будет принимать их из формы для обновления какого-либо устройства)
import flask
import flask_wtf
import wtforms
app = flask.Flask(__name__, instance_relative_config=False)
app.config['WTF_CSRF_ENABLED'] = False
app.secret_key = 'super secret key'
class ValidatedForm:
active = wtforms.BooleanField("Selected", default=False)
class MyBoolForm(flask_wtf.FlaskForm, ValidatedForm):
value = wtforms.BooleanField()
def populate(form, data):
for label in data:
field = wtforms.FormField(MyBoolForm)
setattr(form, label, field)
class InputForm(flask_wtf.FlaskForm):
"""Entry of a several value."""
read_submit = wtforms.SubmitField('Read')
write_submit = wtforms.SubmitField('Write')
def debug(data):
for item in data:
if item+'-value' in flask.request.form and flask.request.form[item+'-value'] == 'y':
flask.flash(f"{item} was set")
if item+'-active' in flask.request.form and flask.request.form[item+'-active'] == 'y':
flask.flash(f"{item} was selected")
if 'write_submit' in flask.request.form and flask.request.form['write_submit'] == 'Write' :
flask.flash(f"write was pressed")
if 'read_submit' in flask.request.form and flask.request.form['read_submit'] == 'Read' :
flask.flash(f"read was pressed")
# the dynamic configuration
data = ["peperoni", "anchoix", "olives", "jambon"]
@app.route('/', methods=('GET', 'POST'))
def input():
# enter configuration into the form
populate(InputForm, data)
# make the form and display it
form = InputForm()
# back from the form
if form.validate_on_submit():
pprint.pprint(flask.request.form)
debug(data)
# action with input
# how can I force some values that will be displayed in the form ?
else:
print(form.errors)
return flask.render_template('gpio_input.html', title="gpio configuration demo", form=form)
if __name__ == '__main__':
app.run(debug=True)
Я хочу контролировать и форсировать значение по умолчанию, которое будет отображаться. Пытался изменить form.data, но не изменилось ... Очень странно .. Есть намеки?