class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) user_name = db.Column(db.String(30), unique=True, nullable=False) password = db.Column(db.String(30), nullable=False) ip_address = db.Column(db.String(30)) comments = db.relationship("Comment", backref="user", lazy=True) articles = db.relationship("Article", backref="user", lazy=True) image = db.Column(db.String(30), default="default.png")
class Article(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False, unique=True) article_content = db.Column(db.Text) date = db.Column(db.DateTime, default=datetime.utcnow) abstract = db.Column(db.String(150), nullable=False) category_id = db.Column(db.Integer, db.ForeignKey("category.id"), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False) comments = db.relationship("Comment", backref="article", lazy=True)
class Post(db.Model): __table_args__ = {'extend_existing': True} __tablename__ = 'post' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) content = db.Column(db.Text) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) author = db.Column(db.String(20), unique=True, nullable=False) def __repr__(self): return '<Post {}>'.format(self.id)
class Relationship(db.Model): __table_args__ = {'extend_existing': True} __tablename__ = 'relationship' relation_id = db.Column(db.Integer, primary_key=True) userID_1 = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) userID_2 = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) dtr = db.Column(db.String(50), nullable=True) def __repr__(self): return '<Relationship {}>'.format(self.relation_id)
class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) user_comment = db.Column(db.String(200), nullable=False) date = db.Column(db.DateTime, default=datetime.utcnow) #parent_id = db.Column(db.Integer, db.ForeignKey('comment.id')) #replies = db.relationship('Comment', backref=db.backref('parent', remote_side=[id]),lazy='dynamic') user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False) article_id = db.Column(db.Integer, db.ForeignKey("article.id"), nullable=False)
class User(db.Model, UserMixin): __table_args__ = {'extend_existing': True} __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False) postzz = db.relationship('Post', backref=("userPOST"), foreign_keys=('post.c.user_id'), lazy=True) user1 = db.relationship('Relationship', backref=("user_ID1RELAT"), foreign_keys=('relationship.c.userID_1'), lazy=True) user2 = db.relationship('Relationship', backref=("user_ID2RELAT"), foreign_keys=('relationship.c.userID_2'), lazy=True) def __repr__(self): return '<User {}>'.format(self.username)
class Category(db.Model): id = db.Column(db.Integer, primary_key=True) category_name = db.Column(db.String(50), nullable=False, unique=True) article_cat = db.relationship("Article", backref="category", lazy=True)