Данные из wtform не записываются в БД - Flask - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь создать простую таблицу (ID, имя) с тремя маршрутами - домой, добавить, просмотреть. Добавить добавит имя к таблице, а представление покажет полную таблицу. Полный код вставлен здесь, так что будет проще запустить его с Docker: https://github.com/Nadavbm/Python/tree/master/flask/sql/name

По какой-то причине я не могу записать данные в БД из этого маршрута \ view:

@app.route('/add', methods=['GET', 'POST'])
def add():
    form = NameForm()
    print('Name form created')
    if request.method == 'POST' and form.validate():
        print('Post entered and form validated')
        named = Name(name=form.name.data)
        try:
            print('Trying to add new name to db')
            db.session.add(named)
            print('Add name')
            db.session.commit()
            print('Commit name')
            flash('Added name successfully!')
        except  e:
            print('Exception!!')
            session.rollback()
            print(e)
        return redirect(url_for('view'))
    return render_template('add.html', form=form)

Как вы можете видеть в полном коде, я использую Jinja2 в html, forms.py, models.py - но я не могу найти причину, по которой он не пишет в БД и не имеет ошибок ...

1 Ответ

0 голосов
/ 01 ноября 2019

Может быть, form.validate() всегда ложно, потому что {{ form.hidden_tag() }} закомментировано в шаблоне формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...