迭代Flask中的复选框

And*_*huk 18 python jinja2 flask

我有一个Jinja2模板,如下所示:

<form action="" method=post>
    <table>
        <tr>
            <th></th>
            <th>ID</th>
            <th>Title</th>
        </tr>
        {% for page in pages %}
            <tr>
                <td><input type=checkbox name=do_delete value="{{ page['id'] }}"></td>
                <td>{{ page['id'] }}</td>
                <td><a href="{{ page['id'] }}">{{ page['title'] }}</a></td>
            </tr>
        {% endfor %}
    </table>
    With selected:
    <input type=submit value=Delete>
</form>
Run Code Online (Sandbox Code Playgroud)

我有一个函数,当单击"删除"按钮时,应该根据选中的复选框删除页面:

db.session.query(Page).filter(Page.id.in_(page_ids)).delete()
Run Code Online (Sandbox Code Playgroud)

我坚持的是如何遍历所有复选框并形成已page_ids检查的复选框列表.

Sea*_*ira 34

Flask的request对象(实际上是LocalProxy实例返回的类request)是werkzeug MultiDict数据结构的子类- 包括一个getlist方法.

page_ids = request.form.getlist("do_delete")
Run Code Online (Sandbox Code Playgroud)