Ejemplo n.º 1
0
class ArticleForm(BaseForm):
    handlemod = core.RadioField(label='选择操作类型',
                                choices=(
                                    (1, '恢复链接'),
                                    (2, '删除链接'),
                                ),
                                validators=[DataRequired()],
                                coerce=int)
    urls = simple.StringField(
        label="链接地址",
        validators=[DataRequired()],
    )
    remark = simple.StringField(label="备注", )
    relation = core.RadioField(label='是否关联3g网及分页',
                               choices=(
                                   (1, '关联'),
                                   (2, '不关联'),
                               ),
                               validators=[DataRequired()],
                               coerce=int)
    username = simple.StringField(label='用户名', validators=[DataRequired()])

    def validate_urls(self, field):
        try:
            for url in field.data.split():
                if not re.match('^http://', url):
                    raise ParameterException(url + '链接地址请以http://开头')
                parse = urlparse(url)
                if not re.search("test.com$", parse.netloc):
                    raise ParameterException(msg="只接收test.com域名下的链接")
        except:
            raise ParameterException("urls参数格式错误" + traceback.format_exc())
Ejemplo n.º 2
0
class WebUrlForm(BaseForm):
    handlemod = core.RadioField(label='选择操作类型',
                                choices=(
                                    (1, '恢复链接'),
                                    (2, '删除链接'),
                                ),
                                validators=[DataRequired()],
                                coerce=int)
    weburls = simple.StringField(
        label="链接地址",
        widget=widgets.TextArea(),
        render_kw={
            "placeholder": "输入页面url地址以换行分隔",
            "rows": 10,
            'class': 'form-control'
        },
        validators=[DataRequired()],
    )
    imagexpath = simple.StringField(label="获取图片的xpath规则",
                                    widget=widgets.TextInput(),
                                    render_kw={
                                        "placeholder": "爬取图片的xpath规则,不懂可以不填",
                                        "value": "//center//img/@src",
                                        'class': 'form-control'
                                    })

    pages = BooleanField(label="是否关联分页")
    remark = simple.StringField(label="备注",
                                widget=widgets.TextInput(),
                                render_kw={
                                    "placeholder": "本次操作说明,可不填写。",
                                    'class': 'form-control'
                                })
Ejemplo n.º 3
0
class RegForm(Form):
    username = simple.StringField(
        label="用户名",
        validators=[
            validators.DataRequired(message="用户名不能为空"),
            validators.Length(min=6, max=16, message="用户名必须大于等于6,小于等于16")
        ],
        render_kw={"class": "my_class"})

    password = simple.PasswordField(
        label="密码",
        validators=[
            validators.DataRequired(message="密码不能为空"),
            validators.Length(min=6, max=16, message="密码必须大于等于6,小于等于16")
        ])

    repassword = simple.PasswordField(
        label="确认密码",
        validators=[
            validators.DataRequired(message="确认密码不能为空"),
            validators.EqualTo("password", message="两次密码不一致")
        ])
    # widget=widgets.RadioInput(),
    gender = core.RadioField(label="性别",
                             choices=((0, "女"), (1, "男")),
                             default=1,
                             render_kw={"class": "my_class"},
                             coerce=int)

    email = simple.StringField(label="邮箱",
                               validators=[
                                   validators.DataRequired(message="邮箱不能为空"),
                                   validators.Email(message="不符合规定")
                               ])
Ejemplo n.º 4
0
class RegForm(Form):
    username = simple.StringField(label="用户名:",
                                  validators=[
                                      validators.Length(
                                          min=4,
                                          max=10,
                                          message="用户名不能小于%(min)d,不能大于%(max)d")
                                  ])

    password = simple.PasswordField(
        label="密码:",
        validators=[
            validators.Length(max=10,
                              min=6,
                              message="password不能小于%(min)d,不能大于%(max)d")
        ])

    repassword = simple.PasswordField(
        label="确认眼神:",
        validators=[validators.EqualTo("password", message="眼神未确认")])
    email = simple.StringField(label="邮箱",
                               validators=[validators.Email(message="邮箱格式不符")])

    gender = core.RadioField(label="性别:",
                             choices=[(1, "女"), (2, "男")],
                             coerce=int)

    hobby = core.SelectMultipleField(label="嗜好",
                                     choices=[(1, "小姐姐"), (2, "小萝莉"),
                                              (3, "小正太"), (4, "小哥哥")],
                                     coerce=int)

    sub = simple.SubmitField(label="登陆", render_kw={"class": "bs"})
Ejemplo n.º 5
0
class RecoverForms(BaseForm):
    handlemod = core.RadioField(label='选择操作类型',
                                choices=(
                                    (1, '恢复链接'),
                                    (2, '删除链接'),
                                ),
                                validators=[DataRequired()],
                                coerce=int)
    fileupload = simple.StringField(
        label="上传列表文件",
        widget=widgets.FileInput(),
        render_kw={'placeholder': 'form-control'},
    )
    imageurls = simple.StringField(label="链接地址",
                                   widget=widgets.TextArea(),
                                   render_kw={
                                       "placeholder": "输入链接url地址以换行分隔",
                                       "rows": 10,
                                       'class': 'form-control'
                                   })
    remark = simple.StringField(label="备注",
                                widget=widgets.TextInput(),
                                render_kw={
                                    "placeholder": "本次操作说明,可不填写。",
                                    'class': 'form-control'
                                })
    addwhiteimg = core.RadioField(
        label='图片是否加入图片白名单',
        choices=((0, '加入'), (1, '不加入')),
        default=1,
        validators=[DataRequired()],
        coerce=int,
    )
    relation = core.RadioField(
        label='是否关联3g网及分页',
        choices=(
            (1, '关联'),
            (2, '不关联'),
        ),
        validators=[DataRequired()],
        coerce=int,
        default=2,
    )
Ejemplo n.º 6
0
class RegisterForm(Form):
    name = simple.StringField(
        label='用户名',
        validators=[
            validators.DataRequired()
        ],
        widget=widgets.TextInput(),
        render_kw={'class': 'form-control'},
        default='alex'
    )

    pwd = simple.PasswordField(
        label='密码',
        validators=[
            validators.DataRequired(message='密码不能为空')
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'}
    )

    pwd_confirm = simple.PasswordField(
        label='重复密码',
        validators=[
            validators.DataRequired(message='重复密码不能为空'),
            validators.EqualTo('pwd', message='两次密码输入不一致'),
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'}
    )

    email = html5.EmailField(
        label='邮箱',
        validators=[
            validators.DataRequired(message='邮箱不能为空'),
            validators.Email(message='邮箱格式错误')
        ],
        widget=widgets.TextInput(input_type='email'),
        render_kw={'class': 'from-control'},
    )

    gender = core.RadioField(
        label='性别',
        choices=(
            (1, '男'),
            (2, '女'),
        ),

        coerce=int,
        default=[1, ],
    )
Ejemplo n.º 7
0
class RegForm(Form):
    # 用户名
    username = simple.StringField(
        label='用户名',  # label标签
        validators=[  # 校验规则
            validators.data_required(message='数据不能为空'),
            validators.Length(min=5, max=16, message="用户名要在5-6个字符之间")
        ],
        render_kw={"class": 'user'}  # input标签中的类
    )
    # 密码
    pwd = simple.PasswordField(
        label='密码',  # label标签
        validators=[  # 校验规则
            validators.data_required(message='数据不能为空'),
            validators.Length(min=5, max=16, message="用户名要在5-6个字符之间"),
            validators.Regexp(
                regex='^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{6,}$',
                message='最少6位,包括至少1个大写字母,1个小写字母,1个数字,不允许包含特殊字符')
        ],
        render_kw={"class": 'pwd'}  # input标签中的类
    )
    # 确认密码
    repwd = simple.PasswordField(
        label='密码',  # label标签
        validators=[  # 校验规则
            validators.data_required(message='数据不能为空'),
            validators.EqualTo('pwd', message='两次密码不一致')
        ],
        render_kw={"class": 'repwd'}  # input标签中的类
    )
    # 单选
    gender = core.RadioField(
        label='性别',
        choices=((1, '女'), (2, '男')),
        coerce=int,  # 选择字符串转化为int 默认为str
        default=2  # 默认选中
    )

    # 多选
    hobby = core.SelectMultipleField(
        label='爱好',
        choices=[
            [1, '西游记'],
            [2, '红楼梦'],
        ],
        coerce=int,
        default=[1, 2]  # 默认
    )
Ejemplo n.º 8
0
class MutationsMrnaForm(FlaskForm):
    mrna_radio = core.RadioField(
        label="mRNA – level impact",
        choices=
        (("m1", 'all mRNA isoforms'),
         ("m2",
          'mRNA isoforms with coding regions being impact <span data-toggle="tooltip" data-placement="top" title="The mRNA isoforms of the selected mutation falls on the exon"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></span>'
          ),
         ("m3",
          'brain expressed mRNA isoforms  <span data-toggle="tooltip" data-placement="top" title="Have one expressed value of startswith brain tissue(log2(TPM+1) >= 1)"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></span>'
          ),
         ("m4",
          'mRNA isoforms with coding regions being impact and brain expressed mRNA isoforms  <span data-toggle="tooltip" data-placement="top" title="The mRNA isoforms of the selected mutation falls on the exon and have one expressed value of startswith brain tissue(log2(TPM+1) >= 1"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></span>'
          )),
        default="m1"
        # coerce=int  #限制是int类型的
    )
    mrna_submit = SubmitField('Show')
Ejemplo n.º 9
0
class MutationProteinForm(FlaskForm):
    protein_radio = core.RadioField(
        label="Protein – level impact",
        choices=(
            ("p1", 'all proteins'),
            ("p2",
             'Impacted proteins  <span data-toggle="tooltip" data-placement="top" title="The transcript of the selected mutation falls on the exon"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></span>'
             ),
            ("p3",
             'brain expressed proteins <span data-toggle="tooltip" data-placement="top" title="The expressed value of brain (Median protein expression, log <sub>10</sub> normalized iBAQ intensity) >=0.5 )"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></span>'
             ),
            ("p4",
             'Impacted proteins and brain expressed proteins <span data-toggle="tooltip" data-placement="top" title="The transcript of the selected mutation falls on the exon and expressed value of brain (Median protein expression, lg normalized iBAQ intensit) >=0.5 )"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></span>'
             ),
        ),
        default="p1"
        # coerce=int  #限制是int类型的
    )
    protein_submit = SubmitField('Show')
Ejemplo n.º 10
0
class StudentForm(Form):
    ID = simple.StringField(widget=widgets.HiddenInput),
    StudentName = simple.StringField(
        label="姓名",
        validators=[
            validators.data_required(message="学生姓名不能为空!"),
            validators.Length(min=2, max=20, message="学生姓名长度必须大于2位,小于20位")
        ])
    Age = core.StringField(label="年龄",
                           validators=[
                               validators.data_required(message="学生年龄不能为空!"),
                               validators.Regexp(regex="^\d+$",
                                                 message="学生年龄必须为数字")
                           ])
    Gender = core.RadioField(
        label="性别",
        coerce=int,  # 保存到数据中的值为int类型
        choices=((0, '女'), (1, '男')),
        default=1)
    submit = simple.SubmitField(label="提交")
Ejemplo n.º 11
0
class RegisterForm(Form):
    name = simple.StringField(
        label='用户名',
        validators=[
            validators.DataRequired()
        ],
        widget=widgets.TextInput(),
        render_kw={'class': 'form-control'},
        default='alex'
    )

    pwd = simple.PasswordField(
        label='密码',
        validators=[
            validators.DataRequired(message='密码不能为空.')
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'}
    )

    pwd_confirm = simple.PasswordField(
        label='重复密码',
        validators=[
            validators.DataRequired(message='重复密码不能为空.'),
            validators.EqualTo('pwd', message="两次密码输入不一致")
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'}
    )

    email = html5.EmailField(
        label='邮箱',
        validators=[
            validators.DataRequired(message='邮箱不能为空.'),
            validators.Email(message='邮箱格式错误')
        ],
        widget=widgets.TextInput(input_type='email'),
        render_kw={'class': 'form-control'}
    )

    gender = core.RadioField(
        label='性别',
        choices=(
            (1, '男'),
            (2, '女'),
        ),
        coerce=int
    )
    city = core.SelectField(
        label='城市',
        choices=SQLHelper.fetch_all('select id,name from city',{},None),
        # choices=(
        #     (1, '篮球'),
        #     (2, '足球'),
        # ),
        coerce=int
    )

    hobby = core.SelectMultipleField(
        label='爱好',
        choices=(
            (1, '篮球'),
            (2, '足球'),
        ),
        coerce=int
    )

    favor = core.SelectMultipleField(
        label='喜好',
        choices=(
            (1, '篮球'),
            (2, '足球'),
        ),
        widget=widgets.ListWidget(prefix_label=False),
        option_widget=widgets.CheckboxInput(),
        coerce=int,
        default=[1, 2]
    )
    def __init__(self, *args, **kwargs):
        super(RegisterForm, self).__init__(*args, **kwargs)
        self.city.choices = SQLHelper.fetch_all('select id,name from city',{},None)


    def validate_name(self, field):
        """
        自定义pwd_confirm字段规则,例:与pwd字段是否一致
        :param field:
        :return:
        """
        # 最开始初始化时,self.data中已经有所有的值
        # print(field.data) # 当前name传过来的值
        # print(self.data) # 当前传过来的所有的值:name,gender.....

        obj = SQLHelper.fetch_one('select id from users where name=%s',[field.data,])
        if obj:
            raise validators.ValidationError("用户名已经存在") # 继续后续验证
Ejemplo n.º 12
0
class RegisterForm(Form):
    name = simple.StringField(label='用户名',
                              validators=[validators.DataRequired()],
                              widget=widgets.TextInput(),
                              render_kw={'class': 'form-control'},
                              default='alex')

    pwd = simple.PasswordField(
        label='密码',
        validators=[validators.DataRequired(message='密码不能为空.')],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'})

    pwd_confirm = simple.PasswordField(
        label='重复密码',
        validators=[
            validators.DataRequired(message='重复密码不能为空.'),
            validators.EqualTo('pwd', message="两次密码输入不一致")
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'})

    email = html5.EmailField(label='邮箱',
                             validators=[
                                 validators.DataRequired(message='邮箱不能为空.'),
                                 validators.Email(message='邮箱格式错误')
                             ],
                             widget=widgets.TextInput(input_type='email'),
                             render_kw={'class': 'form-control'})

    gender = core.RadioField(
        label='性别',
        choices=(
            (1, '男'),
            (2, '女'),
        ),
        coerce=int  # “1” “2”
    )
    city = core.SelectField(label='城市', choices=(
        ('bj', '北京'),
        ('sh', '上海'),
    ))

    hobby = core.SelectMultipleField(label='爱好',
                                     choices=(
                                         (1, '篮球'),
                                         (2, '足球'),
                                     ),
                                     coerce=int)

    favor = core.SelectMultipleField(
        label='喜好',
        choices=(
            (1, '篮球'),
            (2, '足球'),
        ),
        widget=widgets.ListWidget(prefix_label=False),
        option_widget=widgets.CheckboxInput(),
        coerce=int,
        default=[1, 2])

    def __init__(self, *args, **kwargs):
        super(RegisterForm, self).__init__(*args, **kwargs)
        self.favor.choices = ((1, '篮球'), (2, '足球'), (3, '羽毛球'))

    def validate_pwd_confirm(self, field):
        """
        自定义pwd_confirm字段规则,例:与pwd字段是否一致
        :param field:
        :return:
        """
        # 最开始初始化时,self.data中已经有所有的值

        if field.data != self.data['pwd']:
            # raise validators.ValidationError("密码不一致") # 继续后续验证
            raise validators.StopValidation("密码不一致")  # 不再继续后续验证
Ejemplo n.º 13
0
class RegisterForm(Form):
    name = StringField(
        label='用户名',
        validators=[
            validators.DataRequired()
        ],
        widget=widgets.TextInput(),
        render_kw={'class': 'models-control'},
        default='用户名'                                           #设置input标签中默认值
    )

    pwd = PasswordField(
        label='密码',
        validators=[
            validators.DataRequired(message='密码不能为空.')
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'models-control'}
    )

    pwd_confirm = PasswordField(                                #第二次输入密码
        label='重复密码',
        validators=[
            validators.DataRequired(message='重复密码不能为空.'),
            validators.EqualTo('pwd', message="两次密码输入不一致")  #验证2次输入的密码是否一致?
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'models-control'}
    )

    email = html5.EmailField(
        label='邮箱',
        validators=[
            validators.DataRequired(message='邮箱不能为空.'),
            validators.Email(message='邮箱格式错误')
        ],
        widget=widgets.TextInput(input_type='email'),    #生成email input标签
        render_kw={'class': 'models-control'}
    )

    gender = core.RadioField(
        label='性别',
        choices=(                                        #choice radio选项
            (1, '男'),
            (2, '女'),
        ),
        coerce=int                                       #讲用户提交过来的 '4' 强制转成 int 4
    )
    city = core.SelectField(
        label='城市',
        choices=(
            ('bj', '北京'),
            ('sh', '上海'),
        )
    )

    hobby = core.SelectMultipleField(                      #select 下拉框多选框
        label='爱好',
        choices=(
            (1, '篮球'),
            (2, '足球'),
        ),
        coerce=int
    )

    favor = core.SelectMultipleField(
        label='喜好',
        choices=(
            (1, '篮球'),
            (2, '足球'),
        ),
        widget=widgets.ListWidget(prefix_label=False),        #生成Checkbox 多选框
        option_widget=widgets.CheckboxInput(),
        coerce=int,
        default=[1,2]
    )

    def __init__(self, *args, **kwargs):                        #重写form验证类的__init__方法可以实时同步数据中数据
        super(RegisterForm, self).__init__(*args, **kwargs)
        self.favor.choices = ((1, '篮球'), (2, '足球'), (3, '羽毛球'))
        self.city.choices=(('bj', '北京'), ('sh', '上海'), ('tj','天津'))


    def validate_pwd_confirm(self, field):                       #wtforms验证 钩子函数
        """
        自定义pwd_confirm字段规则,例:与pwd字段是否一致
        :param field:
        :return:
        """
        # 最开始初始化时,self.data中已经有所有的值

        if field.data != self.data['pwd']:
            # raise validators.ValidationError("密码不一致") # 继续后续验证
            raise validators.StopValidation("密码不一致")  # 不再继续后续验证
Ejemplo n.º 14
0
class RegFrom(Form):
    username = simple.StringField(
        label="账号",
        validators=[
            validators.DataRequired(message="账号不能为空"),
            validators.Length(min=8, max=16, message="账号长度在8-16位之间")
        ],
        render_kw={"class": "my_username"}
    )

    password = simple.PasswordField(
        label="密码",
        validators=[
            validators.DataRequired(message="密码不能为空"),
            validators.Length(min=6, max=6, message="密码长度为6位"),
            validators.Regexp(regex='\d+', message="密码必须为数字")
        ],
        render_kw={"class": "my_password"}
    )

    re_password = simple.PasswordField(
        label="确认密码",
        validators=[
            validators.EqualTo(fieldname="password", message="两次密码不一致")
        ]
    )

    email = simple.StringField(
        label="邮箱",
        validators=[
            validators.Email(message="格式不正确")
        ],
        render_kw={"class": "my_email"}
    )

    nickname = simple.StringField(
        label="昵称",
        validators=[
            validators.DataRequired(message="密码不能为空"),
        ],
        render_kw={"class": "my_nickname"}
    )

    gender = core.RadioField(
        label="性别",
        coerce=int,
        choices=(
            (1, "M"),
            (2, "F")
        ),
        default=1
    )

    hobby = core.SelectMultipleField(
        label="爱好",
        coerce=int,
        choices=(
            (1, "Apple"),
            (2, "Sumsung"),
            (3, "Mi"),
            (4, "Meizu"),
            (5, "Huawei"),
            (6, "Nubia")
        ),
        default=(1, 2, 3)
    )
Ejemplo n.º 15
0
class RegisterForm(Form):
    name = simple.StringField(label="用户名",
                              validators=[validators.DataRequired()],
                              widget=widgets.TextInput(),
                              render_kw={"class": "form-control"},
                              default="wd")
    pwd = simple.PasswordField(
        label="密码", validators=[validators.DataRequired(message="密码不能为空")])
    pwd_confim = simple.PasswordField(
        label="重复密码",
        validators=[
            validators.DataRequired(message='重复密码不能为空.'),
            validators.EqualTo('pwd', message="两次密码不一致")
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'})

    #   ========================html5============================
    email = html5.EmailField(  # 注意这里用的是html5.EmailField
        label='邮箱',
        validators=[
            validators.DataRequired(message='邮箱不能为空.'),
            validators.Email(message='邮箱格式错误')
        ],
        widget=widgets.TextInput(input_type='email'),
        render_kw={'class': 'form-control'})

    #   ===================以下是用core来调用的=======================
    gender = core.RadioField(
        label="性别",
        choices=(
            (1, "男"),
            (1, "女"),
        ),
        coerce=int  # 限制是int类型的
    )
    city = core.SelectField(label="城市", choices=(
        ("bj", "北京"),
        ("sh", "上海"),
    ))
    hobby = core.SelectMultipleField(label='爱好',
                                     choices=(
                                         (1, '篮球'),
                                         (2, '足球'),
                                     ),
                                     coerce=int)
    favor = core.SelectMultipleField(
        label="喜好",
        choices=(
            (1, '篮球'),
            (2, '足球'),
        ),
        widget=widgets.ListWidget(prefix_label=False),
        option_widget=widgets.CheckboxInput(),
        coerce=int,
        default=[1, 2])

    def __init__(self, *args, **kwargs):  # 这里的self是一个RegisterForm对象
        '''重写__init__方法'''
        super(RegisterForm, self).__init__(*args, **kwargs)  # 继承父类的init方法
        self.favor.choices = ((1, '篮球'), (2, '足球'), (3, '羽毛球')
                              )  # 把RegisterForm这个类里面的favor重新赋值,实现动态改变复选框中的选项

    def validate_pwd_confim(
        self,
        field,
    ):
        '''
        自定义pwd_config字段规则,例:与pwd字段是否一致
        :param field:
        :return:
        '''
        # 最开始初始化时,self.data中已经有所有的值
        if field.data != self.data['pwd']:
            # raise validators.ValidationError("密码不一致") # 继续后续验证
            raise validators.StopValidation("密码不一致")  # 不再继续后续验证
Ejemplo n.º 16
0
class RegisterForm(FlaskForm):
    username = simple.StringField(
        label="用户名",
        validators=[
            validators.DataRequired(
                message="用户名不能为空")  # 必填项检查 message 为返回的错误内容
        ],
        widget=widgets.TextInput(),
        render_kw={"class": "form-control"},
        default="wd")
    password = simple.PasswordField(
        label="密码",
        validators=[
            validators.DataRequired(message="密码不能为空"),
            validators.length(6, 10, message='密码长度为6~10位'),
            # Regexp(r'')   # 写正则
        ])
    pwd_confim = simple.PasswordField(
        label="重复密码",
        validators=[
            validators.DataRequired(message='重复密码不能为空.'),
            validators.EqualTo('password', message="两次密码不一致")  # 相等校验
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'})
    mail = html5.EmailField(  # 注意这里用的是html5.EmailField
        label='邮箱',
        validators=[
            validators.DataRequired(message='邮箱不能为空.'),
            validators.Email(message='邮箱格式错误')
        ],
        widget=widgets.TextInput(input_type='email'),
        render_kw={'class': 'form-control'})

    gender = core.RadioField(
        label="性别",
        choices=(
            (1, "男"),
            (1, "女"),
        ),
        coerce=int  # 限制是int类型的
    )
    city = core.SelectField(label="城市", choices=(
        ("bj", "北京"),
        ("sh", "上海"),
    ))
    hobby = core.SelectMultipleField(label='爱好',
                                     choices=(
                                         (1, '篮球'),
                                         (2, '足球'),
                                     ),
                                     coerce=int)
    favor = core.SelectMultipleField(
        label="喜好",
        choices=(
            (1, '篮球'),
            (2, '足球'),
        ),
        widget=widgets.ListWidget(prefix_label=False),
        option_widget=widgets.CheckboxInput(),
        coerce=int,
        default=[1, 2])

    # submit = simple.SubmitField(
    #     label="提交",
    #     render_kw={
    #         "class": "btn btn-primary btn-block",
    #     },
    # )

    def __init__(self, *args, **kwargs):  # 动态更行字段的值(可以从数据库中查到数据并赋值)
        '''重写__init__方法'''
        super(RegisterForm, self).__init__(*args, **kwargs)
        self.favor.choices = ((1, '篮球'), (2, '足球'), (3, '羽毛球')
                              )  # 把RegisterForm这个类里面的favor重新赋值,实现动态改变复选框中的选项
Ejemplo n.º 17
0
class RegisterForm(Form):
    name = simple.StringField(
        label='用户名',
        validators=[validators.DataRequired(message="用户名不能为空")],
        widget=widgets.TextInput(),
        render_kw={'class': 'form-control'},
        default='alex')

    pwd = simple.PasswordField(
        label='密码',
        validators=[validators.DataRequired(message='密码不能为空.')],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'})

    pwd_confirm = simple.PasswordField(
        label='重复密码',
        validators=[
            validators.DataRequired(message='重复密码不能为空.'),
            validators.EqualTo('pwd', message="两次密码输入不一致")  # 校验密码一致
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'})

    email = html5.EmailField(label='邮箱',
                             validators=[
                                 validators.DataRequired(message='邮箱不能为空.'),
                                 validators.Email(message='邮箱格式错误')
                             ],
                             widget=widgets.TextInput(input_type='email'),
                             render_kw={'class': 'form-control'})

    gender = core.RadioField(
        label='性别',
        choices=(
            (1, '男'),
            (2, '女'),
        ),
        coerce=int  # int("1") 前端提交数据默认为字符串类型,coerce设置后端接收到后为int.
    )
    city = core.SelectField(label='城市', choices=(
        ('bj', '北京'),
        ('sh', '上海'),
    ))

    hobby = core.SelectMultipleField(label='爱好',
                                     choices=(
                                         (1, '篮球'),
                                         (2, '足球'),
                                     ),
                                     coerce=int)

    favor = core.SelectMultipleField(
        label='喜好',
        choices=(
            (1, '篮球'),
            (2, '足球'),
        ),
        widget=widgets.ListWidget(prefix_label=False),
        option_widget=widgets.CheckboxInput(),
        coerce=int,
        default=[
            1,
        ])
Ejemplo n.º 18
0
class RegForm(Form):
    username = simple.StringField(
        label="用户名",
        validators=[
            validators.DataRequired(message="不能为空"),
            validators.Length(min=3, max=5, message="不能小于3位,不能大于5位")
        ],
        # widget=widgets.TextInput(),
        render_kw={"class": "my_username"})

    nickname = simple.StringField(
        label="昵称",
        validators=[
            validators.DataRequired(message="不能为空"),
        ],
        # widget=widgets.TextInput(),
        render_kw={"class": "my_username"})

    password = simple.PasswordField(
        label="密码",
        validators=[
            validators.DataRequired(message="不能为空"),
            validators.Length(min=6, max=6, message="密码必须为6位"),
            validators.Regexp(regex="\d+", message="密码必须位数字"),
        ],
        # widget=widgets.TextInput(),
        render_kw={"class": "my_password"})

    repassword = simple.PasswordField(label="重复密码",
                                      validators=[
                                          validators.EqualTo(
                                              fieldname="password",
                                              message="两次密码不一致")
                                      ])

    email = simple.StringField(
        label="昵称",
        validators=[
            validators.Email(message="格式不正确"),
        ],
        # widget=widgets.TextInput(),
        render_kw={"class": "my_username"})

    gender = core.RadioField(label="性别",
                             coerce=int,
                             choices=((1, "女"), (2, "男")),
                             default=1)

    hobby = core.SelectMultipleField(label="爱好",
                                     coerce=int,
                                     choices=(
                                         (1, "小姐姐"),
                                         (2, "小萝莉"),
                                         (3, "小哥哥"),
                                         (4, "小正太"),
                                         (5, "阿姨"),
                                         (6, "大叔"),
                                     ),
                                     default=(1, 2, 5))

    submit = simple.SubmitField(label="提交")