class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) body = db.Column(db.String(100), nullable=False) timestamp = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) post_id = db.Column(db.Integer, db.ForeignKey('post.id'), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"Comment('{self.body}', '{self.timestamp}')"
class User(db.Model,UserMixin): 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) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.password}','{self.image_file}')"
class User(db.Model, UserMixin): 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) image_file = db.Column(db.String(20), nullable=False, default='default.png') password = db.Column(db.String(60), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) comments = db.relationship('Comment', backref='author', lazy=True) about_me = db.Column(db.String(140)) last_seen = db.Column(db.DateTime, default=datetime.utcnow) role = db.Column(db.String, default='user') def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')" def is_admin(self): return self.role == 'admin' def is_moderator(self): return self.role == 'moderator' def is_simple_user(self): return self.role == 'user' def user_role(self): return self.role
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80), nullable=False) description = db.Column(db.String(100), nullable = False) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.now) content = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) category = db.Column(db.String(20)) cover_image = db.Column(db.String(20), nullable = False) # query print def __repr__(self): return f"Post('{self.title}', '{self.date_posted}', '{self.category}')"
class Post(db.Model): 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.UnicodeText, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) image_file = db.Column(db.String(20), nullable=False, default='news_default.png') def __repr__(self): return f"Post('{self.title}', '{self.date_posted}')"
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) # 0: viewer, 1: reporter type_user = db.Column(db.Integer, default = 0) # gender is_male = db.Column(db.Integer, default = 1) # personal description description = db.Column(db.String(240), nullable = False, default= "Hi, I'm a new user") username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) # query print def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.is_male}', '{self.description}', '{self.image_file}')"