models.py:
from sqlalchemy.orm import validates
class Apiusers(db.Model):
__tablename__ = 'apiusers'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(120), index=True)
password_hash = db.Column(db.String(128))
def __repr__(self):
return self.username
@validates('username')
def validate_username(self, key, username):
if not username:
raise AssertError('No username provided')
if Apiusers.query.filter(Apiusers.username == username).first():
raise AssertError('Username is already in use')
if len(username) < 5 or len(username) > 20:
raise AssertError('Username must be between 5 and 20 characters')
return username
@validates('email')
def validate_email(self, key, email):
if not email:
raise AssertError('No email provided')
if not re.match("[^@]+@[^@]+\.[^@]+", email):
raise AssertError('Provided email is not an email address')
return email
flask_alchemy model的一种数据校验方法
猜你喜欢
转载自blog.csdn.net/ypgsh/article/details/102585664
今日推荐
周排行