当前位置: 首页 > 知识库问答 >
问题:

如何使用 Flask 更新数据库中复选框的值 [重复]

司徒云
2023-03-14

试图用烧瓶和sqlalchemy做一个简单的待办事项应用程序,因为我以前从未在烧瓶中使用过复选框,所以我有以下问题。

应用程序是

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

HTML是:

<ul>
    {% for todo in incomplete %}
    <li><input id="checkbx" name="{{ todo.id }}" type="checkbox"> {{ todo.text }} </li>
    {% endfor %}    
</ul>

当I,

print(request.form) 

选中复选框以完成待办事项任务并单击更新按钮后,控制台将打印出来:

ImmutableMultiDict([('11', u'on')])

如何更新数据库以将完整值从“0”更改为“1”?

print(request.form['checkbx']) 

给出400个错误请求

request.form.get('checkbx') 

返回无

todo = request.form.getlist('checkbx')

返回[]

我想我需要做这样的事情:

todo = Todo.query.filter_by(int(id)).first()

这样我就可以

todo.complete = True
db.session.commit()

我怎么能从那个不可变的MultiDict(在这种情况下是'11')中获取id???

共有1个答案

皇甫福
2023-03-14

您可以将不可变的多词典转换为字典

todo = dict(request.form).keys[0]

然后按它过滤,完成并提交。

 类似资料:
  • 如果数据库中的数据为是或否,如何选中复选框,我尝试使用attr函数,但没有成功 这是我的html

  • 如何使用Pandas更新/组合/合并数据帧(df1)和来自另一个数据帧(df2)的值,其中df1有一个新列(col3)和来自df2的值。可乐2?换句话说,df1是当前月份的值,我希望df1也有一个来自df2的列,它是上个月的值。 任何关于这方面的见解都是值得赞赏的;非常感谢你。 DF1: DF2: 所需df:

  • 问题内容: 我想获取Flask中复选框的值。我读过一篇类似的文章,并尝试使用和的输出,因为这是我使用的列表,但看来我做错了。这是获取输出的正确方法还是有更好的方法? 问题答案: 你并不需要使用,只是如果只有一个给定名称的输入,尽管它不应该的事。你显示的内容确实有效。这是一个简单的可运行示例: 提交带有两个复选框的表单,然后在终端中打印。请注意,html表单的方法是,post因此数据将位于中。 在某

  • 我有一个复选框: 最初,我希望根据我获取的数据选中复选框。我有一个preference字段,它的值为0,所以我把: 然后根据emailpreference添加checked。但是一旦这个值得到,即使按下,我也会将状态从true更改为false,反之亦然。它不会更新。

  • 我正尝试使用一个复选框来使用jQuery更新ID行处的数据库。 我正在使用while循环填充表。JQuery对第1行起作用,正确更新ID为xx的复选框的1或0。当您单击任何其他行时,它会正确地标识ID,但不会返回复选框值。 PHP代码: AJAX代码:

  • 问题内容: 我有两个Spark数据框: 数据框A: 和数据框B: 数据框B可以包含来自数据框A的重复行,更新行和新行。我想在spark中编写操作,在其中可以创建一个新数据框,其中包含数据框A的行以及数据框B的更新行和新行。 我首先创建一个仅包含不可更新列的哈希列。这是唯一的ID。所以我们可以说,并可以改变值(可更新),但是是唯一的。我创建了一个哈希函数为: 现在,我想编写一些火花代码,基本上从B中