class ItemModel(db.Model): __tablename__ = 'items' id_ = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(20)) price = db.Column(db.Float(precision=2)) store_id = db.Column(db.Integer, db.ForeignKey('stores.id_')) store = db.relationship('StoreModel') def __init__(self, name, price, store_id): self.name = name self.price = price self.store_id = store_id def json(self): return { 'name': self.name, 'price': self.price, 'store_id': self.store_id } @classmethod def get_by_name(cls, name): return cls.query.filter_by(name=name).first() def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit()
class Post(db.Model): """Represents Proected posts.""" __tablename__ = 'posts' id = db.Column(db.String(45), primary_key=True) title = db.Column(db.String(255)) text = db.Column(db.Text()) publish_date = db.Column(db.DateTime) # Set the foreign key for Post user_id = db.Column(db.String(45), db.ForeignKey('users.id')) comments = db.relationship('Comment', backref='posts', lazy='dynamic') # many to many: posts <==> tags tags = db.relationship( 'Tag', #会告知 SQLAlchemy 该 many to many 的关联保存在 posts_tags 表中 secondary=posts_tags, #声明表之间的关系是双向,帮助手册 help(db.backref)。 # 需要注意的是:在 one to many 中的 backref 是一个普通的对象, # 而在 many to many 中的 backref 是一个 List 对象 backref=db.backref('posts', lazy='dynamic')) def __init__(self, title): self.title = title def __repr__(self): return "<Model Post `{}`>".format(self.title)
class Message(db.Model): """ Saving messages from guest(buyers) to seller in our database """ id = db.Column(db.Integer, primary_key=True) gar_name = db.Column(db.Text, nullable=False) msg = db.Column(db.Text, nullable=False) receiver_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
class Comment(db.Model): """Represents Proected comments.""" __tablename__ = 'comments' id = db.Column(db.String(45), primary_key=True) name = db.Column(db.String(255)) text = db.Column(db.Text()) date = db.Column(db.DateTime()) post_id = db.Column(db.String(45), db.ForeignKey('posts.id')) def __init__(self, name): self.name = name def __repr__(self): return '<Model Comment `{}`>'.format(self.name)
class Garment(db.Model): """ Saving clothes posted by users with login credentials into our database """ id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(10), nullable=False) gender = db.Column(db.String(5), nullable=False) size = db.Column(db.String(5), nullable=False) price = db.Column(db.INTEGER, nullable=False) des = db.Column(db.Text, nullable=False) pic = db.Column(db.String(2000), nullable=False, default='default.jpg') #db.Column(ARRAY(db.Text), nullable=False, default=db.cast(array([], type_=db.Text), ARRAY(db.Text))) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"Garment('{self.title}', '{self.date_posted}')"
from db_config import db """ """ posts_tags = db.Table( 'posts_tags', db.Column('post_id', db.String(45), db.ForeignKey('posts.id')), db.Column('tag_id', db.String(45), db.ForeignKey('tags.id'))) class Post(db.Model): """Represents Proected posts.""" __tablename__ = 'posts' id = db.Column(db.String(45), primary_key=True) title = db.Column(db.String(255)) text = db.Column(db.Text()) publish_date = db.Column(db.DateTime) # Set the foreign key for Post user_id = db.Column(db.String(45), db.ForeignKey('users.id')) comments = db.relationship('Comment', backref='posts', lazy='dynamic') # many to many: posts <==> tags tags = db.relationship( 'Tag', #会告知 SQLAlchemy 该 many to many 的关联保存在 posts_tags 表中 secondary=posts_tags, #声明表之间的关系是双向,帮助手册 help(db.backref)。 # 需要注意的是:在 one to many 中的 backref 是一个普通的对象, # 而在 many to many 中的 backref 是一个 List 对象 backref=db.backref('posts', lazy='dynamic'))