我正在尝试创建一个简单的表(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-但我找不到它不写入数据库且也没有任何错误的原因...
答案 0 :(得分:0)
也许form.validate()
始终为False,因为{{ form.hidden_tag() }}
在表单模板中被注释掉了。