在插入数据库之前使用正则表达式检查数据是个好主意吗?

时间:2016-11-20 21:53:37

标签: python regex database sqlalchemy

今天我决定做一些练习,以便在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"

这是保持数据库中数据完整性的好方法吗?

0 个答案:

没有答案