原文出处:
a. 基本使用
1 class RegisterForm(Form): 2 username = StringField(max_length=32, 3 min_length=6, 4 error={'required': '用户名不能为空', 5 'min_length': '用户名不能少于6位', 6 'max_length': '用户名不能超过32位'}) 7 8 password = StringField(max_length=32, 9 min_length=6, 10 error={'required': '密码不能为空'}, 11 widget=InputPassword()) 12 13 gender = IntegerField(error={'required': '请选择性别', 14 'invalid': '性别必须为数字'}, 15 widget=InputRadio(text_value_list=[{'value': 1, 'text': '男', }, 16 {'value': 2, 'text': '女', }], 17 checked_value=2)) 18 19 age = IntegerField(max_value=500, 20 min_value=0, 21 error={'required': '年龄不能为空', 22 'invalid': '年龄必须为数字', 23 'min_value': '年龄不能小于0', 24 'max_value': '年龄不能大于500'}) 25 26 email = EmailField(error={'required': '邮箱不能为空', 27 'invalid': '邮箱格式错误'}) 28 29 city = IntegerField(error={'required': '城市选项不能为空', 'invalid': '城市选项必须为数字'}, 30 widget=SingleSelect(text_value_list=[{'value': 1, 'text': '上海'}, 31 {'value': 2, 'text': '北京'}, 32 {'value': 3, 'text': '广州'}]) 33 ) 34 protocol = IntegerField(error={'required': '请选择协议', 'invalid': '协议格式错误'}, 35 widget=InputSingleCheckBox(attr={'value': 1})) 36 37 memo = StringField(required=False, 38 max_length=150, 39 error={'invalid': '备注格式错误', 'max_length': '备注最大长度为150字'}, 40 widget=TextArea())
b. 多选checkbox
1 class MultiCheckBoxForm(Form): 2 favor_str_val = StringListField(error={'required': '请选择爱好', 'invalid': '选择爱好格式错误'}, 3 widget=InputMultiCheckBox(text_value_list=[{'value': '1', 'text': '篮球', }, 4 {'value': '2', 'text': '足球', }, 5 {'value': '3', 'text': '乒乓球', }, 6 {'value': '4', 'text': '羽毛球'}, ])) 7 8 favor_str_val_default = StringListField(error={'required': '请选择爱好', 'invalid': '选择爱好格式错误'}, 9 widget=InputMultiCheckBox(text_value_list=[{'value': '1', 'text': '篮球', }, 10 {'value': '2', 'text': '足球', }, 11 {'value': '3', 'text': '乒乓球', }, 12 {'value': '4', 'text': '羽毛球'}, ], 13 checked_value_list=['1', '4'])) 14 15 favor_int_val = IntegerListField(error={'required': '请选择爱好', 'invalid': '选择爱好格式错误'}, 16 widget=InputMultiCheckBox(text_value_list=[{'value': 1, 'text': '篮球', }, 17 {'value': 2, 'text': '足球', }, 18 {'value': 3, 'text': '乒乓球', }, 19 {'value': 4, 'text': '羽毛球'}, ])) 20 21 favor_int_val_default = IntegerListField(error={'required': '请选择爱好', 'invalid': '选择爱好格式错误'}, 22 widget=InputMultiCheckBox(text_value_list=[{'value': 1, 'text': '篮球', }, 23 {'value': 2, 'text': '足球', }, 24 {'value': 3, 'text': '乒乓球', }, 25 {'value': 4, 'text': '羽毛球'}, ], 26 checked_value_list=[2, ]))
c、多选select
1 class MultiSelectForm(Form): 2 select_str_val = StringListField(error={'required': '请选择爱好', 'invalid': '选择爱好格式错误'}, 3 widget=MultiSelect(text_value_list=[{'value': '1', 'text': '篮球', }, 4 {'value': '2', 'text': '足球', }, 5 {'value': '3', 'text': '乒乓球', }, 6 {'value': '4', 'text': '羽毛球'}, ])) 7 8 select_str_val_default = StringListField(error={'required': '请选择爱好', 'invalid': '选择爱好格式错误'}, 9 widget=MultiSelect(text_value_list=[{'value': '1', 'text': '篮球', }, 10 {'value': '2', 'text': '足球', }, 11 {'value': '3', 'text': '乒乓球', }, 12 {'value': '4', 'text': '羽毛球'}, ], 13 selected_value_list=['1', '3'])) 14 15 select_int_val = IntegerListField(error={'required': '请选择爱好', 'invalid': '选择爱好格式错误'}, 16 widget=MultiSelect(text_value_list=[{'value': 1, 'text': '篮球', }, 17 {'value': 2, 'text': '足球', }, 18 {'value': 3, 'text': '乒乓球', }, 19 {'value': 4, 'text': '羽毛球'}, ])) 20 21 select_int_val_default = IntegerListField(error={'required': '请选择爱好', 'invalid': '选择爱好格式错误'}, 22 widget=MultiSelect(text_value_list=[{'value': 1, 'text': '篮球', }, 23 {'value': 2, 'text': '足球', }, 24 {'value': 3, 'text': '乒乓球', }, 25 {'value': 4, 'text': '羽毛球'}, ], 26 selected_value_list=[2]))
d. 动态select选项
1 class DynamicSelectForm(Form): 2 city = IntegerField(error={'required': '年龄不能为空', 'invalid': '年龄必须为数字'}, 3 widget=SingleSelect(text_value_list=[{'value': 1, 'text': '上海'}, 4 {'value': 2, 'text': '北京'}, 5 {'value': 3, 'text': '广州'}]) 6 ) 7 8 multi_favor = IntegerListField(error={'required': '请选择爱好', 'invalid': '选择爱好格式错误'}, 9 widget=MultiSelect(text_value_list=[{'value': 1, 'text': '篮球', }, 10 {'value': 2, 'text': '足球', }, 11 {'value': 3, 'text': '乒乓球', }, 12 {'value': 4, 'text': '羽毛球'}, ])) 13 14 def __init__(self, *args, **kwargs): 15 super(DynamicSelectForm, self).__init__(*args, **kwargs) 16 17 # 获取数据库中的最新数据并显示在页面上(每次创建对象都执行一次数据库操作来获取最新数据) 18 self.city.widget.text_value_list = [{'value': 1, 'text': '上海'}, 19 {'value': 2, 'text': '北京'}, 20 {'value': 3, 'text': '南京'}, 21 {'value': 4, 'text': '广州'}] 22 23 self.multi_favor.widget.text_value_list = [{'value': 1, 'text': '篮球'}, 24 {'value': 2, 'text': '足球'}, 25 {'value': 3, 'text': '乒乓球'}, 26 {'value': 4, 'text': '羽毛球'}, 27 {'value': 5, 'text': '玻璃球'}]
赞 (0)
打赏
微信扫一扫
相关文章:
-
-
近期看到C++标准中对volatile关键字的定义,发现和java的volatile关键字完全不一样,C++的volatile对并发编程基本没有帮助... [阅读全文]
-
Python作为一种解释型语言,由于使用了全局解释锁(GIL)的原因,其代码不能同时在多核CPU上并发的运行。这也导致在Python中使用多线程编程... [阅读全文]
-
题目背景 从前森林里有一棵很大的mjt树,树上有很多小动物。 题目描述 mjt树上有 n 个房间,第 i 个房间住着 ai 只第bi 种小动物。 这... [阅读全文]
-
例1: 输出结果: 例2: 输出结果: ... [阅读全文]
-
函数 1.函数结构 def 是函数的定义关键字,my_len是函数名。()传参用,冒号下面都是函数体。 执行函数方法:函数名加括号来执行函数。My_... [阅读全文]
-
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论