【问题标题】:Data from wtform doesn't write to the DB - Flask来自 wtform 的数据不写入数据库 - Flask
【发布时间】:2020-02-27 07:40:20
【问题描述】:

我正在尝试创建一个简单的表(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 - 但我找不到它不写入数据库并且也没有任何错误的原因......

【问题讨论】:

    标签: python flask sqlalchemy wtforms


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      • 2017-10-28
      • 1970-01-01
      • 2020-02-21
      相关资源
      最近更新 更多