今天我决定做一些练习,以便在SQLAlchemy
中学习Python
。
我想到的一个想法是在数据库中创建新行之前使用正则表达式检查所有输入。
我的模型看起来像这样:
class Student(db.Model):
id = db.Column(db.Integer, primary_key=True)
matricola = db.Column(db.String(9), nullable=False, unique=True)
email = db.Column(db.String(50))
def __init__(self, matricola, email):
self.matricola = matricola
self.email = email
def __repr__(self):
return "<Studente {}>".format(self.id)
所以我创建了这个函数createStudent
来在db:
def createStudent(matricola, email):
matricola_regex = re.compile("(X81|M01)[0-9]{6}")
email_regex = re.compile("[^@]+@[^@]+\.[^@.]+")
matricola_match = bool(matricola_regex.match(matricola))
email_match = bool(email_regex.match(email))
condition = matricola_match and email_match
if condition:
new = Student(matricola, email)
db.session.add(new)
db.session.commit()
else:
print "Error with student data"
这是保持数据库中数据完整性的好方法吗?