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) #Basically, this does an additional query lets us see all posts made by this specific user posts = db.relationship('Post', backref='author', lazy=True) def get_reset_token(self, expires_sec=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): #how our object is printed when we print it out return f"User('{self.username}','{self.email}','{self.image_file}')"
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(255)) body = db.Column(db.String(1000)) slug = db.Column(db.String(255)) publish_date = db.Column(db.Date) blog_id = db.Column(db.Integer, db.ForeignKey("blog.id")) author_id = db.Column(db.Integer, db.ForeignKey("author.id")) category_id = db.Column(db.Integer, db.ForeignKey("category.id")) is_live = db.Column(db.Boolean) def __init__(self, title, body, slug, blog_id, author_id, category_id, date, is_live=1): self.title = title self.body = body self.slug = slug self.blog_id = blog_id self.author_id = author_id self.category_id = category_id self.publish_date = date self.is_live = is_live def __repr__(self): return "<Post %r>" % self.title
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) # 1-many relationship i.e. one user can have many post but one post can have only one author with Post class posts = db.relationship('Post', backref='author', lazy=True) # password reset method with token def get_reset_token(self, expires_seconds=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_seconds) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) blog_id = db.Column(db.Integer, db.ForeignKey('blog.id')) author_id = db.Column(db.Integer, db.ForeignKey('author.id')) title = db.Column(db.String(80)) body = db.Column(db.Text) slug = db.Column(db.String(256), unique=True) publish_date = db.Column(db.DateTime) live = db.Column(db.Boolean) category_id = db.Column(db.Integer, db.Foreign('category.id')) def __init__(self, blog, author, title, body, category, slug=None, publish_date=None, live=True): self.blog_id = blog.id self.author_id = author.id self.title = title self.body = body self.category = category self.slug = slug self.live = live self.publish_date = publish_date if publish_date else datetime.utcnow() def __repr__(self): return f'<post {self.title}>'
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) posts = db.relationship('Post', backref='author', lazy=True) # This function generates a time-specific token # It takes the user_id of u.init_app(app)ser as payload and gernerate a long random string. def get_reset_token(self, expires_sec=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) # try-except block to test weather the token is valid or not # if the token is invalid or time limit has expired then we return none try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class User(db.Model, UserMixin): ''' This class defines structure of the User object. Each user of the website is put into the database as an instance of this User class''' 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) posts = db.relationship( 'Post', backref='author', lazy=True) #grabs posts from the posts table by a specific author def get_reset_token(self, expires_sec=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): '''this method defines how the object is printed''' return f"User('{self.username}','{self.email}','{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.jpg') password = db.Column(db.String(60), nullable=False) posts = db.relationship( 'POST', backref='author', lazy=True) # lazy means it will return the data in one go #this posts col allows us to view the user who created the post def __repr__(self): return f"User('{self.username}','{self.email}','{self.image_file}')" def get_reset_token(self, expires_time=1800): s = Serializer(app.config['SECRET_KEY'], expires_time) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_token(token): s = Serializer(app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id)
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), nullable=False, unique=True) email = db.Column(db.String(40), nullable=False, unique=True) profile_picture = db.Column(db.String(20), nullable=False, default="joker.jpg") password = db.Column(db.String(40), nullable=False) posts = db.relationship('Posts', backref='author', lazy=True) # backref - to mention col name in related Class(table) lazy to be able to fetch all # posts using the author def get_reset_token(self, expires_sec=300): serial = Serializer(current_app.config['SECRET_KEY'], expires_sec) return serial.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): serial = Serializer(current_app.config['SECRET_KEY']) try: user_id = serial.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.id}')"
class Profile(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), unique=False) country = db.Column(db.String(30), unique=False) email = db.Column(db.String(30), unique=False) hobbies = db.Column(db.String(500), unique=False) def __repr__(self): return f"This is the profile of {self.name}"
class User(db.Model): 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) posts = db.relationship('Post', backref='author', lazy=True)
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) posts = db.relationship('Post', backref=db.backref('author', lazy=True)) # "P" Upper case for Class def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class Post(db.Model): id = db.Column(db.Integer,primary_key=True) title = db.Column(db.String(100),nullable=False) content = db.Column(db.Text(),nullable=False) created_time = db.Column(db.DateTime,nullable=False,default=cn_timezone) update_time = db.Column(db.DateTime,nullable=True) post_image = db.Column(db.String(20),nullable=True,default='default.jpg') author_id = db.Column(db.Integer,db.ForeignKey('user.id'),nullable=False) def __repr__(self): return f"Post('{self.title}','{self.author.username}','{self.created_time}')"
class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(50), unique=True) password = db.Column(db.String(50)) entries = db.relationship("Entry", backref="users") def __init__(self, username=None, password=None): self.username = username self.password = password