Пример #1
0
import uuid
from sqlalchemy.ext.declarative import declared_attr
from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy_utils import Timestamp
from sqlalchemy_utils import ArrowType, UUIDType, ChoiceType

db = SQLAlchemy()
db.Arrow = ArrowType
db.UUID = UUIDType
db.Choice = ChoiceType


class Base(db.Model, Timestamp):
    """Base model class"""
    __abstract__ = True

    id = db.Column(db.UUID(binary=False), default=uuid.uuid4, primary_key=True)

    @declared_attr
    def __tablename__(cls):
        """ Set __tablename__ to equal the class name to lower """
        return cls.__name__.lower()