wtform中的数据不会写入数据库-Flask

问题描述 投票:0回答:1

我正在尝试使用以下三种路线创建一个简单的表格(ID,名称):首页,添加,查看。添加将为表添加一个名称,视图将显示整个表。完整的代码已推送到此处,因此使用Docker运行它会更容易:https://github.com/Nadavbm/Python/tree/master/flask/sql/name

由于某些原因,我无法从此路由\视图将数据写入数据库:

@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)

您可以在完整的代码中看到,我在html,forms.py,models.py中使用Jinja2-但我无法找到不写入数据库且也没有任何错误的原因...] >

我正在尝试使用以下三种路线创建一个简单的表格(ID,名称):首页,添加,查看。添加将为表添加一个名称,视图将显示整个表。完整的代码被推送到这里,这样会更容易...

python flask sqlalchemy wtforms
1个回答
0
投票

也许form.validate()始终为False,因为{{ form.hidden_tag() }}在表单模板中被注释掉了。

© www.soinside.com 2019 - 2024. All rights reserved.