尝试用烧瓶和sqlalchemy做一个简单的待办事项应用程序,因为我之前从未使用过烧瓶中的复选框,我有以下问题。
应用
git status
HTML IS:
class Todo(db.Model):
id = db.Column(db.Integer, primary_key=True)
text = db.Column(db.String(200))
complete = db.Column(db.Boolean)
@app.route('/update', methods=['POST'])
def update():
print(request.form)
return redirect(url_for('index'))
当我,
<ul>
{% for todo in incomplete %}
<li><input id="checkbx" name="{{ todo.id }}" type="checkbox"> {{ todo.text }} </li>
{% endfor %}
</ul>
选中复选框以完成待办事项任务并单击更新按钮后,控制台将打印出:
print(request.form)
如何更新数据库以将完整值从“0”更改为“1”?
ImmutableMultiDict([('11', u'on')])
给出400错误请求
print(request.form['checkbx'])
返回无
request.form.get('checkbx')
返回[]
我猜我需要做类似的事情:
todo = request.form.getlist('checkbx')
所以我可以
todo = Todo.query.filter_by(int(id)).first()
我如何从那个ImmutableMultiDict获取id(在这种情况下它是'11')???
答案 0 :(得分:0)
您可以将ImmutableMultiDict转换为dict
todo = dict(request.form).keys[0]
然后按它过滤,完成并提交。