Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 来自wtform的数据不';t写入DB-Flask_Python_Flask_Sqlalchemy_Wtforms - Fatal编程技术网

Python 来自wtform的数据不';t写入DB-Flask

Python 来自wtform的数据不';t写入DB-Flask,python,flask,sqlalchemy,wtforms,Python,Flask,Sqlalchemy,Wtforms,我正在尝试创建一个简单的表(ID、名称),其中包含三个路由:home、add和view。Add将向表中添加名称,view将显示完整的表。 将完整代码推送到此处,以便使用Docker更轻松地运行: 由于某些原因,我无法从此路由\视图将数据写入数据库: @app.route('/add', methods=['GET', 'POST']) def add(): form = NameForm() print('Name form created') if request.me

我正在尝试创建一个简单的表(ID、名称),其中包含三个路由:home、add和view。Add将向表中添加名称,view将显示完整的表。 将完整代码推送到此处,以便使用Docker更轻松地运行:

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

@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,但是我找不到它不写入DB并且没有任何错误的原因…

可能
form.validate()
总是错误的,因为
{form.hidden_tag()}
在表单模板中被注释掉了