class PwdForm(Form): """修改密码form""" pwd = simple.PasswordField( label="密码", validators=[ validators.Regexp('^(?:(?=.*[A-Za-z])(?=.*[0-9])).{5,}$', message='密码应最少6位,由字母和数字的组成!'), validators.DataRequired(message="原始密码不能为空!"), ]) newPwd = simple.PasswordField( label="密码", validators=[ validators.Regexp('^(?:(?=.*[A-Za-z])(?=.*[0-9])).{5,}$', message='新密码应最少6位,由字母和数字的组成!'), validators.DataRequired(message="新密码不能为空!"), ]) repeatPwd = simple.PasswordField( label="密码", validators=[ validators.Regexp('^(?:(?=.*[A-Za-z])(?=.*[0-9])).{5,}$', message='密码应最少6位,由字母和数字的组成!'), validators.DataRequired(message="请重复输入新密码!"), ]) def validate_pwd(self, pwd): if not token.user.check_password(pwd.data): raise validators.StopValidation('原始密码输入错误!') def validate_newPwd(self, newPwd): if newPwd.data != self.repeatPwd.data: raise validators.StopValidation('新密码两次输入不一致!') elif newPwd.data == self.pwd.data: raise validators.StopValidation('新密码与原始密码相同!') self.newPwd.data = generate_password_hash(newPwd.data)
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="不符合规定") ])
class RegistrationForm(Form): username = simple.StringField( label='Username', widget=widgets.TextInput(), validators=[ validators.DataRequired(message="Username can not be empty"), validators.Length(6, 40, 'Need to be more than 6 characters') ]) password = simple.PasswordField( label='Password', widget=widgets.PasswordInput(), validators=[ validators.DataRequired(message='Password can not be empty'), validators.Length(6, 40, 'Need to be more than 6 characters') ]) password2 = simple.PasswordField( label='Repeat Password', widget=widgets.PasswordInput(), validators=[ validators.DataRequired(message='Password can not be empty'), validators.EqualTo('password', message='Two password not same') ]) email = simple.StringField( label='Email', widget=widgets.TextInput(), validators=[ validators.DataRequired(message='Email can not be empty'), validators.Email(message='Wrong Email Syntax') ]) submit = simple.SubmitField(label='Submit', widget=widgets.SubmitInput())
class RegisterForm(BaseForm): username = StringField( label='用户名', validators=[ DataRequired(), validators.Length(2, 15, message='昵称至少需要两个字符,最多15个字符') ], widget=widgets.TextInput(), render_kw={'class': 'form-control'}, default='root' ) password = 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('password', message="两次密码输入不一致") ], widget=widgets.PasswordInput(), render_kw={'class': 'form-control'} ) def validate_username(self, field): if User.query.filter_by(username=field.data).first(): raise validators.ValidationError('用户名已存在')
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"})
class RegisterForm(Form): username = simple.StringField( label='用户名', validators=[ validators.DataRequired(message='用户名不能为空'), validators.Length(min=3, max=18, message='用户名长度必须大于%(min)d, 并且小于%(max)d'), ], widget=widgets.TextInput(), render_kw={'class': 'form-control'}) pwd = simple.PasswordField( label='用户密码', validators=[ validators.DataRequired(message='用户密码不能为空'), validators.Length(min=6, max=18, message='用户密码的长度必须大于6位字符并且小于18位字符'), validators.Regexp( regex='^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[_]){6,18}', message='用户密码至少包' '含一个字母一个数字以及一个下划线') ], widget=widgets.PasswordInput(), render_kw={'class': 'form-control'}, ) re_pwd = simple.PasswordField( label='重复密码', validators=[ validators.DataRequired(message='重复密码不能为空'), validators.EqualTo('pwd', '两次密码输入不一致') ], widget=widgets.PasswordInput(), render_kw={'class': 'control'}, ) email = html5.EmailField( label='邮箱', validators=[ validators.DataRequired(message='邮箱不能为空'), validators.Email(message='邮箱格式错误') ], widget=widgets.TextInput(input_type='email'), render_kw={'class': 'form-control'}, ) def __init__(self, *args, **kwargs): super(RegisterForm, self).__init__(*args, **kwargs) def validate_pwd_confirm(self, field): if field.data != self.data['pwd']: # raise validators.ValidationError("密码不一致") 继续后续验证 raise validators.StopValidation('密码不一致') # 不再继续验证
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, ], )
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] # 默认 )
class LoginForm(Form): '''Form''' name = simple.StringField( label="Username", widget=widgets.TextInput(), validators=[ validators.DataRequired(message="username cannot be empty"), validators.Length( max=20, min=5, message="The length of username should between 5 and 20") ], render_kw={"class": "form-control"}) pwd = simple.PasswordField( label="password", validators=[ validators.DataRequired(message="password cannot be empty"), validators.Length( max=30, min=5, message="The length of password should between 5 and 30"), ], widget=widgets.PasswordInput(), render_kw={"class": "form-control"})
class LoginForm(Form): username = simple.StringField( label="用户名:", widget=widgets.TextInput(), validators=[ validators.DataRequired(message="用户名不能为空"), validators.Length(min=4, max=10, message="用户名不能小于%(min)d,不能大于%(max)d") ], # 声明校验方式 id="username", #widget=widgets.FileInput(), render_kw={"class": "my_class"}, ) password = simple.PasswordField( label="密码:", validators=[ validators.Length(max=10, min=6, message="password不能小于%(min)d,不能大于%(max)d"), validators.Regexp("\d+", message="密码只能是数字") ], id="pwd", render_kw={"style": "width:300px;"}) sub = simple.SubmitField(label="登陆", render_kw={"class": "bs"})
class LoginForm(BaseForm): username = StringField( label='用户名', validators=[ DataRequired(), validators.Length(2, 15, message='昵称至少需要两个字符,最多15个字符') ], widget=widgets.TextInput(), render_kw={'class': 'form-control'}, default='root' ) password = simple.PasswordField( label='密码', validators=[ validators.DataRequired(message='密码不能为空.') ], widget=widgets.PasswordInput(), render_kw={'class': 'form-control'} ) def validate_username(self, field): user = User.query.filter_by(username=field.data).first() if not user: raise validators.ValidationError('用户名不存在') elif not user.is_active: raise validators.ValidationError("用户账户未启用")
class LoginForm(Form): user = simple.StringField(label='用户名', validators=[ validators.DataRequired(message='用户名不能为空.'), validators.Length( min=2, max=18, message='用户名长度必须大于%(min)d且小于%(max)d') ], widget=widgets.TextInput(), render_kw={ 'class': 'form-control', 'placeholder': '用户名' }) pwd = simple.PasswordField( label='密码', validators=[ validators.DataRequired(message='密码不能为空.'), validators.Length(min=8, message='用户密码长度必须大于%(min)d'), # validators.Regexp(regex="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}", # message='密码至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符') ], widget=widgets.PasswordInput(), render_kw={ 'class': 'form-control', 'placeholder': '密码' })
class LoginForm(Form): # 字段(内部包含正则表达式) name = simple.StringField( label='用户名', validators=[ # 内部校验器 validators.DataRequired(message='用户名不能为空.'), validators.Length(min=2, max=18, message='用户名长度必须大于%(min)d且小于%(max)d') ], # 页面的显示插件 widget=widgets.TextInput(), # 给插件添加的属性 # render_kw={'class': 'form-control'} ) # pwd = html5.EmailField() # 可以使用html5的验证方式 pwd = simple.PasswordField( label='密码', validators=[ validators.DataRequired(message='密码不能为空.'), validators.Length(min=2, message='用户名长度必须大于%(min)d'), ], widget=widgets.PasswordInput(), # render_kw={'class': 'form-control'} )
class UserForm(Form): userName = simple.StringField( label="用户名", validators=[ validators.DataRequired(message="用户名必须填写!"), validators.length(min=6, max=20, message="用户名应在6-20位之间!") ], ) pwd = simple.PasswordField(label="密码", validators=[ validators.DataRequired(message="密码不能为空"), validators.Regexp( '^(?:(?=.*[A-Za-z])(?=.*[0-9])).{5,}$', message='密码应最少6位,由字母和数字的组成!') ]) nickName = simple.StringField( label='昵称', validators=[ validators.DataRequired(message="昵称必须填写!"), validators.length(max=20, message="用户名不得大于20位!") ]) def validate_userName(self, userName): if User.query.filter(User.userName == userName.data).first(): raise validators.StopValidation("用户已被注册!")
class LoginForm(Form): # 字段(内部包含正则表达式) name = simple.StringField( label='用户名', validators=[ validators.DataRequired(message='用户名不能为空.'), validators.Length(min=6, max=18, message='用户名长度必须大于%(min)d且小于%(max)d') ], widget=widgets.TextInput(), # 页面上显示的插件 render_kw={'class': 'form-control'}) # 字段(内部包含正则表达式) pwd = simple.PasswordField( label='密码', validators=[ validators.DataRequired(message='密码不能为空.'), validators.Length(min=8, message='用户名长度必须大于%(min)d'), validators.Regexp( regex= "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}", message='密码至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符') ], widget=widgets.PasswordInput(), render_kw={'class': 'form-control'})
class LoginForm(Form): username = simple.StringField( label='用户名', validators=[validators.DataRequired(message='用户名不能为空')], widget=widgets.TextInput(), render_kw={'class': 'control'}) password = simple.PasswordField( label='用户密码', validators=[validators.DataRequired(message='用户密码不能为空')], widget=widgets.PasswordInput(), render_kw={'class': 'control'})
class ResetPasswordForm(flask_wtf.form.FlaskForm): """Class representing the password reset form for the application Parameters ---------- FlaskForm : WTForms Flask wtf class that is extended to create the user login form """ password = wtforms_simple.PasswordField( "Password", validators=[wtforms.validators.DataRequired()]) confirm_password = wtforms_simple.PasswordField( "Confirm Password", validators=[ wtforms.validators.DataRequired(), wtforms.validators.EqualTo("password"), ], ) submit = wtforms_simple.SubmitField("Reset password")
class LoginForm(Form): phone = simple.StringField(validators=[ validators.DataRequired(message="手机号不能为空"), validators.Length(max=11, min=7, message="手机号长度不对,请输入正确的手机号") ], widget=widgets.TextInput()) password = simple.PasswordField(validators=[ validators.DataRequired(message="密码不能为空"), validators.Length(max=16, min=6, message="密码长度应在6~16之间") ], widget=widgets.PasswordInput())
class RegisterForm(Form): name = simple.StringField( label='用户名', validators=[ validators.Length(min=2, max=18, message='用户名长度必须大于%(min)d且小于%(max)d'), validators.DataRequired() ], widget=widgets.TextInput(), # 输入框的默认值 default='alex') pwd = simple.PasswordField( label='密码', validators=[ validators.Length(min=2, message='用户名长度必须大于%(min)d'), validators.DataRequired(message='密码不能为空.') ], widget=widgets.PasswordInput(), ) pwd_confirm = simple.PasswordField( label='重复密码', validators=[ validators.DataRequired(message='重复密码不能为空.'), # 内部校验器:与哪一个字段要一直,比django自带的要简单一些,否则还要使用钩子 validators.EqualTo('pwd', message="两次密码输入不一致") ], widget=widgets.PasswordInput(), ) file = simple.FileField( label='头像上传', widget=widgets.FileInput(), ) # 定制钩子函数,使用validate_字段名 def validate_pwd_confirm(self, field): if field.data != self.data['pwd']: raise validators.StopValidation("密码不一致") # 不再继续后续验证 self.data.pop('pwd_confirm')
class LoginForm(Form): username = simple.StringField( validators=[validators.DataRequired(message='用户名不能为空.')], widget=widgets.TextInput(), ) password = simple.PasswordField( validators=[ validators.DataRequired(message='密码不能为空.'), validators.Length(min=8, message='密码长度必须大于%(min)d'), ], widget=widgets.PasswordInput(), )
class LoginForm(Form): username = simple.StringField( render_kw={ 'placeholder': '请输入用户名', 'class': 'form-control' }, label='用户名', validators=[ validators.DataRequired(message='用户名不能为空.'), validators.Length(min=6, max=18, message='用户名长度必须大于%(min)d且小于%(max)d') ], ) pwd = simple.PasswordField( render_kw={ 'placeholder': '请输入密码', 'class': 'form-control' }, label='密码', # validators=[ # validators.DataRequired(message='密码不能为空.'), # validators.Length(min=8, message='用户名长度必须大于%(min)d'), # validators.Regexp( # regex="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}", # message='密码至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符') # # ], ) remember = simple.BooleanField( widget=widgets.CheckboxInput(), render_kw={'style': "width:10%;height:12px;"}) def validate_username(self, field): """ 自定义name字段规则 :param field: :return: """ # 最开始初始化时,self.data中已经有所有的值 # print('钩子函数获取的值', field.data) # print('所有的值',self.data) print(self.data['username'], self.data['pwd']) print(USERNAME, PASSWORD) if not all( [self.data['username'] == USERNAME, self.data['pwd'] == PASSWORD]): raise validators.StopValidation("用户名或密码不正确") def validate_remember(self, field): if field.data: from BeautifulData.views.account import ac session.permanent = True ac.permanent_session_lifetime = timedelta(days=31)
class LoginForm(Form): name = simple.StringField(validators=[ validators.DataRequired(message='用户名不能为空'), validators.Length(min=6, max=18, message='用户名的长度必须大于%(min)d且小于%(max)d') ], render_kw={'placeholder': '请输入用户名'}) pwd = simple.PasswordField(validators=[ validators.DataRequired(message='密码不能为空'), validators.Length(min=6, message='用户名的长度必须大于%(min)d'), validators.Regexp(regex="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$", message='正则表达式密码8-16 必须英文和数字混合'), ], render_kw={'placeholder': '请输入密码'})
class LoginForm(Form): username = simple.StringField( label='Username', widget=widgets.TextInput(), validators=[validators.DataRequired(message="Username can not be empty")]) password = simple.PasswordField( label='Password', widget=widgets.PasswordInput(), validators=[validators.DataRequired(message='Password can not be empty')]) submit = simple.SubmitField( label='Submit', widget=widgets.SubmitInput() )
class ChangePasswordForm(BaseForm): username = StringField( label='用户名', validators=[ DataRequired(), validators.Length(2, 15, message='昵称至少需要两个字符,最多15个字符') ], widget=widgets.TextInput(), render_kw={'class': 'form-control'}, default='root' ) old_password = simple.PasswordField( label='原有密码', validators=[ DataRequired()], widget=widgets.PasswordInput(), render_kw={'class': 'form-control'} ) new_password1 = simple.PasswordField( label='新密码', validators=[ DataRequired(), validators.Length(6, 10, message='密码长度至少需要在6到20个字符之间'), validators.EqualTo('new_password2', message='两次输入的密码不一致')], render_kw={'class': 'form-control'} ) new_password2 = simple.PasswordField( label='确认新密码', validators=[DataRequired()], render_kw={'class': 'form-control'} ) def validate_username(self, field): user = User.query.filter_by(username=field.data).first() if not user: raise validators.ValidationError('用户名不存在')
class RegisterForm(Form): username = simple.StringField( label='用户名', validators=[ validators.DataRequired() ], widget=widgets.TextInput(), render_kw={'class': 'form-control', 'placeholder':'用户名'}, ) pwd = simple.PasswordField( label='密码', validators=[ validators.DataRequired(message='密码不能为空.') ], widget=widgets.PasswordInput(), render_kw={'class': 'form-control', 'placeholder':'密码'} ) pwd_confirm = simple.PasswordField( label='重复密码', validators=[ validators.DataRequired(message='重复密码不能为空.'), validators.EqualTo('pwd', message="两次密码输入不一致") ], widget=widgets.PasswordInput(), render_kw={'class': 'form-control', 'placeholder':'确认密码'} ) email = html5.EmailField( label='邮箱', validators=[ validators.DataRequired(message='邮箱不能为空.'), validators.Email(message='邮箱格式错误') ], widget=widgets.TextInput(input_type='email'), render_kw={'class': 'form-control', 'placeholder':'邮箱'} )
class LoginForm(Form): username = simple.StringField( label="用户名", validators=[ validators.DataRequired(message="用户名不能为空"), validators.Length(min=6, max=16, message="用户名必须大于等于6,小于等于16") ]) password = simple.PasswordField( label="密码", validators=[ validators.DataRequired(message="密码不能为空"), validators.Length(min=6, max=16, message="密码必须大于等于6,小于等于16") ])
class MyForms(Form): name = simple.StringField(label='用户名', validators=[ validators.DataRequired(message='用户名不能为空'), ], widget=widgets.TextInput(), render_kw={'class': 'form-control'}) password = simple.PasswordField( label='密码', validators=[ validators.DataRequired(message='密码不能为空'), ], widget=widgets.PasswordInput(), render_kw={'class': 'form-control'})
class RegisterForm(Form): """ 注册验证 """ username = simple.StringField( validators=[ validators.DataRequired(message='用户名不能为空。') ], widget=widgets.TextInput(), ) password = simple.PasswordField( validators=[ validators.DataRequired(message='密码不能为空。'), validators.Length(min=4, message='密码长度必须大于%(min)d'), ], widget=widgets.PasswordInput(), )
class LoginPwdForm(Form): userName = simple.StringField( label="用户名", validators=[ validators.length(min=6, max=20, message="用户名应在6-20位之间!"), validators.DataRequired(message="用户名必须填写!"), ], ) pwd = simple.PasswordField(label="密码", validators=[ validators.Regexp( '^(?:(?=.*[A-Za-z])(?=.*[0-9])).{5,}$', message='密码应最少6位,由字母和数字的组成!'), validators.DataRequired(message="密码不能为空"), ])
class RegisterForm(Form): phone = simple.StringField(validators=[ validators.DataRequired(message="手机号不能为空"), validators.Length(max=11, min=7, message="手机号长度不对请输入正确的手机号") ], widget=widgets.TextInput()) username = simple.StringField(validators=[ validators.DataRequired(message="用户名不能为空"), validators.Length(max=20, message="用户名长度不能超过20") ], widget=widgets.TextInput()) password = simple.PasswordField(validators=[ validators.DataRequired(message="密码不能为空"), validators.Length(max=16, min=6, message="密码长度应在6~16之间") ], widget=widgets.PasswordInput())