示例#1
0
class TransactionRecord(db.Model):
    __table__ = "transaction_record"
    id = db.Column(db.Integer, primary_key=True)
    transaction_id = db.Column(UUIDType(), db.ForeignKey("transaction.id"))
    field = db.Column(db.String(32), doc=_("Field"))
    before = db.Column(db.PickleType, doc=_('Original Value'))
    after = db.Column(db.PickleType, doc=_('New Value'))
    transactions = db.relationship(Transaction, )
示例#2
0
class Transaction(db.Model):
    __table__ = "transaction"
    id = db.Column(UUIDType(), primary_key=True)
    object_uuid = db.Column(UUIDType(), nullable=False, )
    object_id = db.Column(db.Integer)
    object_table = db.Column(db.String(100), null=True)
    created = db.Column(db.DateTime, default=datetime.datetime.utcnow)
    utime = db.Column(db.DateTime, default=datetime.datetime.utcnow)
示例#3
0
class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_name = db.Column(db.String(40), unique=True)
    password = db.Column(db.Binary(70))
    email = db.Column(db.String(64), unique=True)

    def __str__(self):
        return self.username

    def get_user_id(self):
        return self.id

    def set_password(self, password):
        self.password = hashpw(password.encode("utf-8"), gensalt())

    @classmethod
    def find_by_password(cls, email, password, *args, **kwargs):
        email = email.strip()
        password = password.strip()
        if email and password:
            user = cls.query.filter(
                cls.email == email
            ).first()
            if user and user.check_password(password):
                    return user

    def check_password(self, password):
        pw_hash = hashpw(password=password.encode("utf-8"), salt=self.password)
        return pw_hash == self.password

    @classmethod
    def login(cls, email, password, *args, **kwargs):

        user = cls.find_by_password(email=email, password=password)

        if not user:
            raise exceptions.InvalidEmailOrPassword()

        login_user(user)
        user.last_login_time = time.time()
        object_session(user).commit()

        return jsonify({"code": 1000, "message": 'success'})
示例#4
0
class Parent(TransactionEnabled, db.Model):
    __tablename__ = 'parent'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(length=255))
    children = db.relationship("Child")
示例#5
0
class Child(TransactionEnabled, db.Model):
    __tablename__ = 'child'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(length=255))
    parent_id = db.Column(db.Integer, db.ForeignKey('parent.id'))
    parent = db.relationship("Parent")