Flask FieldList使用简介

1. 定义一个子form和一个form

class ItemForm(FlaskForm):
    date_sel = DateField('日期', format='%Y-%m-%d')
    content = StringField("内容")
    delete = SubmitField("删除")

#自定义表单类
class AddForm(FlaskForm):
    item_list = FieldList(FormField(ItemForm),min_entries =0) #min_entries =3表示有三个同样的ItemForm
    submit = SubmitField("添加")

 2. html中渲染form

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="#" method="post">
    {% for f in form.item_list%}
        {{f.date_sel}}{{f.delete}}<br>
        {{f.content}}<br>

    {%endfor%}
    {{ form.submit}}
</form>
</body>
</html>

3. 添加按钮事件, 添加按钮可以添加一个子控件,删除按钮可以删除当前子控件,如果第一步中min_entries不为0,子控件无法全部 删除。

@app.route("/test",methods=['GET','POST'])
def test():
    form = AddForm()
    if form.submit.data:
        form.item_list.append_entry()
    elif form.item_list:
        for item in form.item_list:
            if item.form.delete.data:
                form.item_list.entries.remove(item)
                break
    return render_template('test.html',  form=form)

效果如下:

发布了62 篇原创文章 · 获赞 18 · 访问量 12万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览