import wtforms from wtforms.validators import Email, Length from init.book_init import db from models.book_model import User, EmailCaptchaModel class UserFrom(wtforms.Form): email = wtforms.StringField(validators=[Email(message='邮箱格式错误 !')]) captcha = wtforms.StringField(validators=[Length(min=4, max=4, message="验证码格式错误")]) username = wtforms.StringField(validators=[Length(min=2, max=20, message="用户格式错误")]) password = wtforms.StringField(validators=[Length(min=2, max=20, message="密码格式错误")]) # 自定义验证 # 1、 邮箱是否被注册 def validate_email(self, field): email = field.data user = User.query.filter_by(email=email).first() if user: raise wtforms.ValidationError(message="该邮箱已经被注册!") # 2、 验证码是否正确 def validate_captcha(self, field): captcha = field.data email = self.email.data filters = {'email': email, 'captcha': captcha} captcha_model = EmailCaptchaModel.query.filter_by(**filters).first() if not captcha_model: raise wtforms.ValidationError(message="邮箱或者验证码错误") else: db.session.delete(captcha_model) db.session.commit() class LoginFrom(wtforms.Form): username = wtforms.StringField(validators=[Length(min=2, max=20, message="用户格式错误")]) password = wtforms.StringField(validators=[Length(min=2, max=20, message="密码格式错误")])
class PostFrom(wtforms.Form): title = wtforms.StringField(validators=[Length(max=20, message="标题格式错误")]) content = wtforms.StringField(validators=[Length(min=4, max=500, message="文本格式错误")]) class CommentFrom(wtforms.Form): content = wtforms.StringField(validators=[Length(min=4, max=500, message="文本格式错误")])