예제 #1
0
class StoreModel(Base):
    __tablename__ = 'stores'
    STORE_TYPES = [
        (u'online', u'Online'),
        (u'pos', u'POS')
    ]

    query = Session.query_property()
    id: int = Column(Integer, primary_key=True)
    name: str = Column(String(length=80))
    email: str = Column(EmailType(length=40))
    type: str = Column(ChoiceType(STORE_TYPES))
    item_count: int = Column(Integer)
    #  items: List[ItemModel] = relationship('ItemModel', lazy='dynamic')
    items: List['ItemModel'] = relationship("ItemModel", back_populates="store")

    def __init__(self, name=None):
        self.name = name

    def json(self):
        item: ItemModel
#       return {'id': self.id, 'name': self.name, 'items': [item.json() for item in self.items]}
        return {'id': self.id, 'name': self.name, 'email': self.email, 'type': self.type, 'item_count': self.item_count}

    @classmethod
    def find_by_id(cls, _id):
        return cls.query.filter_by(id=_id).first()

    @classmethod
    def find_by_name(cls, name):
        return cls.query.filter_by(name=name).first()

    def save_to_db(self):
        session = Session()
        session.add(self)
        session.commit()

    def delete_from_db(self):
        session = Session()
        session.delete(self)
        session.commit()
예제 #2
0
class UserModel(Base):
    __tablename__ = 'users'
    query = Session.query_property()

    id = Column(Integer, primary_key=True)
    username = Column(String(length=80))
    password = Column(String(length=80))

    def __init__(self, username, password):
        self.username = username
        self.password = password

    def save_to_db(self):
        Session.add(self)
        Session.commit()

    @classmethod
    def find_by_username(cls, username):
        return cls.query.filter_by(username=username).first()

    @classmethod
    def find_by_id(cls, _id):
        return cls.query.filter_by(id=_id).first()