db =SQLAlchemy(query_class=Query)classBase(db.Model): __abstract__ =True status =Column(SmallInteger, default=1)defset_attrs(self,attrs_dict):for key, value in attrs_dict.items():ifhasattr(self, key)and key !='id':setattr(self, key, value)
forms/auth.py
classRegisterForm(Form): email =StringField(validators=[DataRequired(), Length(8, 64, message='电子邮箱不符合规范')]) nickname =StringField('昵称', validators=[DataRequired(), Length(2, 10, message='昵称至少需要两个字符,最多10个字符')]) password =PasswordField('密码', validators=[DataRequired(), Length(6, 20)])defvalidate_email(self,field):# User.query.filter_by(email=field.data).first() 等同于 select * from user where name = field.data limit 1if User.query.filter_by(email=field.data).first():raiseValidationError('电子邮件已被注册')defvalidate_nickname(self,field):if User.query.filter_by(nickname=field.data).first():raiseValidationError('昵称已存在')