@RenOoise
Linux, Python, Electronic

Python, Flask. Как заполнить формы данными из базы?

Добрый вечер.
Пытаюсь сделать страничку редактирования свойств некого датчика(ов).
Подскажите, каким образом можно заполнить формы существующими данными в базе?

Сейчас код имеет такой вид:

forms.py
class EditSensorForm(FlaskForm):
    w1_addr = StringField('1-wire адрес', validators=[DataRequired()])
    pin = StringField('Пин')
    function = StringField('Функция', validators=[DataRequired()])
    place = StringField('Место', validators=[DataRequired()])
    submit = SubmitField('Подтвердить')


routes.py
@bp.route('/settings/sensors/edit/<sensor_id>', methods=['GET', 'POST'])
@login_required
def edit_sensor(sensor_id):
    sensor = Sensor.query.filter_by(id=sensor_id).first_or_404()
    form = EditSensorForm()

    if form.validate_on_submit():
        sensor.w1_addr = form.w1_addr.data
        sensor.GPIO_pin = form.pin.data
        sensor.function = form.function.data
        sensor.place = form.place.data
        db.session.commit()
        flash('Your changes have been saved.')
        return redirect(url_for('settings.sensors'))

    elif request.method == 'GET':
        form.w1_addr.data = sensor.w1_addr
        form.pin.data = sensor.GPIO_pin
        form.function.data = sensor.function
        form.place.data = sensor.place

    return render_template('/settings/edit_sensor.html',
                           form=form,
                           title='Редактирование свойств датчика')


Форму в шаблон вставляю через:
{{ wtf.quick_form(form) }}

На выходе получаю такое
5b47b8cf6714b932468762.png
  • Вопрос задан
  • 599 просмотров
Решения вопроса 1
planc
@planc
https://stackoverflow.com/questions/23712986/pre-p...

sensor = Sensor.query.filter_by(id=sensor_id).first_or_404()
form = EditSensorForm(obj=sensor)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы