class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80), unique=True, nullable=False) description = db.Column(db.Text(), nullable=False) content = db.Column(db.Text(), nullable=False) imageurl = db.Column(db.Text(), nullable=False) post_time = db.Column(db.DateTime(), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"Post('{self. title}','{self.subtitle}')"
class BlogPost(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) created_at = db.Column(db.DateTime(100), nullable=False, default=datetime.utcnow) content = db.Column(db.Text(20), nullable=False) category = db.Column(db.Text(50), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"BlogPost('{ self.title }', '{ self.created_at }')"
class Task(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) sender_id = db.Column(db.Integer, db.ForeignKey('user.id')) recipient_id = db.Column(db.Integer, db.ForeignKey('user.id')) title = db.Column(db.Text(100)) body = db.Column(db.Text()) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) last_message_read_time = db.Column(db.DateTime) final = db.Column(db.Boolean, default=False, nullable=False) def __repr__(self): return f"'{self.title}', '{self.body}'"
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) bio = db.Column(db.Text(500), nullable=True) 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) def get_reset_token(self, expires_sec=1800): s = Serializer(app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id':self.id}).decode('utf-8') @staticmethod def verify_reset_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) def __repr__(self): return f"User ('{self.username}', '{self.email}', '{self.image_file}'"
class MyTask(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) body = db.Column(db.Text()) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) def __repr__(self): return f"'{self.body}'"
class Texts(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(200), nullable=False) text = db.Column(db.Text(10000), nullable=False) sentences = db.relationship('Sent', backref='owner', lazy=True) def __repr__(self): return f"Texts('{self.title}', '{self.text}')"
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.Text(20), nullable = False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable = False) def __repr__(self): ##How object is printed which same as __scr__ return f"Post('{self.title}', '{self.date_posted}')"
class Reply(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) sender_id = db.Column(db.Integer, db.ForeignKey('user.id')) recipient_id = db.Column(db.Integer, db.ForeignKey('user.id')) accept = db.Column(db.Text(100)) final = db.Column(db.Boolean, default=False, nullable=False) def __repr__(self): return '{}'.format(self.accept)
class Posts(db.Model): id = db.Column(db.Integer,primary_key = True) title = db.Column(db.String(20),nullable = False) date_posted = db.Column(db.DateTime,nullable = False,default = datetime.utcnow) content = db.Column(db.Text(),nullable = False) user_id = db.Column(db.Integer,db.ForeignKey('user.id'),nullable = False) def __repr__(self): return Posts("{},{}".format(self.title,self.date_posted))
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 = 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"Post('{self.title},{self.content},{self.image_file},{self.created}')"
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String, nullable=False) content = db.Column(db.Text(150), nullable=False) 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'POST (title="{self.title}" user_id="{self.user_id}" posted_on="{self.date_posted}"'
class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) author = db.Column(db.String(20), nullable=False) content = db.Column(db.Text(), nullable=False) timestamp = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) post_id = db.Column(db.Integer, db.ForeignKey('post.id'), nullable=False) def __repr__(self): return f"Comment('{self.author}', '{self.timestamp}')"
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(20), nullable=False) date_posted = db.Column(db.DateTime(100), nullable=False, default=datetime.utcnow) content = db.Column(db.Text(20), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) click_count = db.Column(db.Integer, default=0) category_id = db.Column(db.Integer, db.ForeignKey('category.id'))
class Pitch(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.Text(), nullable = False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable = False) category = db.Column(db.String(255), nullable= False) def __repr__(self): return f"Pitch('{self.title}','{self.date_posted}')"
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.Text(20), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"User('{self.title}',{self.date_posted})"
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) about = db.Column(db.Text(), default="Kiedyś to uzupełnie") role = db.Column(db.Text(), default="user") is_verified = db.Column(db.Text(), default="no") __searchable__ = ['username'] followed = db.relationship('User', secondary=followers, primaryjoin=(followers.c.follower_id == id), secondaryjoin=(followers.c.followed_id == id), backref=db.backref('followers', lazy='dynamic'), lazy='dynamic') def follow(self, user): if not self.is_following(user): self.followed.append(user) def unfollow(self, user): if self.is_following(user): self.followed.remove(user) def is_following(self, user): return self.followed.filter( followers.c.followed_id == user.id).count() > 0 def followed_posts(self): followed = Post.query.join( followers, (followers.c.followed_id == Post.user_id)).filter( followers.c.follower_id == self.id) own = Post.query.filter_by(user_id=self.id) return followed.union(own).order_by(Post.timestamp.desc()) def __repr__(self): return f"User('{self.username}','{self.email}','{self.image_file}')"
class Submission(db.Model): id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(80), nullable=False) email = db.Column(db.String(25), nullable=False) feedback = db.Column(db.Text()) # return feedbacks def listFeedbacks(self): return jsonify({self.email, self.feedback}) def __str__(self): return (self.email, self.feedback)
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) content = db.Column(db.Text(10), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) tag = db.Column(db.String(), default="#hello") post_pic = db.Column(db.String()) def __repr__(self): return f"Post('{self.date_posted}')"
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.Text(), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) # Since user_id Column of User table is foreign key for Post table, # we can use post.author to access the owner / writer of the post. def __repr__(self): return f"Post('{self.title}', '{self.date_posted}')"
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), unique=True, nullable=False) slug = db.Column(db.String(100), unique=True, nullable=False) date_posted = db.Column(db.DateTime(), nullable=False, default=datetime.now) content = db.Column(db.Text(1000), nullable=False) like_post = db.Column(db.Integer, nullable=False) dislike_post = db.Column(db.Integer, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return "Post('%s', '%s')" % (self.title, self.date_posted)
class PostMetadata(db.Model): id = db.Column(db.Integer, primary_key=True) post_id = db.Column(db.Integer, db.ForeignKey('post.id'), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) # emotion = db.Column(db.Boolean(), nullable=True) emotion = db.Column(db.Integer(), nullable=False, default=-1) post_comment = db.Column(db.Text(), nullable=True) comment_img = db.Column(db.String(20), nullable=True) date_commented = db.Column(db.DateTime, nullable=False, default=datetime.now()) def __repr__(self): return f"PostMetadata('{self.id}','{self.emotion}', '{self.post_comment}', '{self.post_id}','{self.user_id}', '{self.date_commented}')"
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.Text(20), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"Post('{self.title}', '{self.date_posted}')" @property def serialize(self): """Return object data in easily serializeable format""" return {'id': self.id, 'title': self.title} @staticmethod def get(ident): baked_query = bakery(lambda s: s.query(Post)) return baked_query(db.session()).get(ident)
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') cover_photo = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) bio = db.Column(db.Text(), nullable=True) dob = db.Column(db.DateTime(), nullable=True) location = db.Column(db.String(64), nullable=True) member_since = db.Column(db.DateTime(), default=datetime.now(), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) comments = db.relationship('PostMetadata', backref='author_comment', lazy=True) # last_seen = db.Column(db.DateTime(), default=datetime.utcnow) 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): return f"User('{self.username}', '{self.email}', '{self.image_file}', '{self.cover_photo}','{self.bio}', '{self.dob}','{self.location}','{self.member_since}')"
class User(db.Model, UserMixin ): # this class is used for creating the database table User id = db.Column(db.Integer, primary_key=True ) # id attribute/column that is an integer and primary key name = db.Column(db.String(64)) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) country = db.Column(db.String(20), nullable=False) about_me = db.Column(db.Text()) member_since = db.Column(db.DateTime, default=datetime.utcnow) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=True) confirmed = db.Column(db.Boolean, default=False) role_id = db.Column(db.Integer, db.ForeignKey('role.id')) posts = db.relationship( 'Post', backref='author', lazy=True) # defining a relationship between user(author) & post comments = db.relationship('Comment', backref='author', lazy='dynamic') def __init__(self, **kwargs): super(User, self).__init__(**kwargs) if self.role is None: if self.email == current_app.config['FLASKY_ADMIN']: self.role = Role.query.filter_by(name='Administrator').first() if self.role is None: self.role = Role.query.filter_by(default=True).first() def can(self, permissions): return self.role is not None and \ (self.role.permissions & permissions) == permissions def is_administrator(self): return self.can(Permission.ADMINISTRATOR) def generate_confirmation_token(self, expiration=3600): # email confirmation s = Serializer(current_app.config['SECRET_KEY'], expiration) return s.dumps({'confirm': self.id}) def confirm(self, token): s = Serializer(current_app.config['SECRET_KEY']) try: data = s.loads(token) except: return False if data.get('confirm') != self.id: return False self.confirmed = True db.session.add(self) return True # author is a back reference which gives us access to the entire User model and the attributes # the posts variable will then be used in routes and views def get_reset_token( self, expires_sec=1800 ): # generates a token that will expire in 30 mins (1800 secs) s = Serializer(current_app.config['SECRET_KEY'], expires_sec) # creates a serializer return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod # tells python that this method won't have the 'self' object - it's a static method def verify_reset_token(token): # verifies if token hasn't expired s = Serializer( current_app.config['SECRET_KEY']) # creates a serializer try: user_id = s.loads(token)[ 'user_id'] # tries to load the token to user_id except: return None # returns None if token has expired return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class User(db.Model, UserMixin): __tablename__ = 'users' 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') about_me = db.Column(db.Text()) password = db.Column(db.String(60), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) followed = db.relationship('Follow', foreign_keys=[Follow.follower_id], backref=db.backref('follower', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan') followers = db.relationship('Follow', foreign_keys=[Follow.followed_id], backref=db.backref('followed', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan') comments = db.relationship('Comment', backref='author', lazy='dynamic') 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) @staticmethod def add_self_follows(): for user in User.query.all(): if not user.is_following(user): user.follow(user) db.session.add(user) db.session.commit() def follow(self, user): if not self.is_following(user): f = Follow(follower=self, followed=user) db.session.add(f) def unfollow(self, user): f = self.followed.filter_by(followed_id=user.id).first() if f: db.session.delete(f) def is_following(self, user): if user.id is None: return False return self.followed.filter_by(followed_id=user.id).first() is not None def is_followed_by(self, user): if user.id is None: return False return self.followers.filter_by( follower_id=user.id).first() is not None @property def followed_posts(self): return Post.query.join(Follow, Follow.followed_id == Post.author_id)\ .filter(Follow.follower_id == self.id) @staticmethod def verify_auth_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: data = s.loads(token) except: return None return User.query.get(data['id']) def to_json(self): json_user = { 'url': url_for('api.get_user', id=self.id), 'username': self.username, 'posts_url': url_for('api.get_user_posts', id=self.id), 'followed_posts_url': url_for('api.get_user_followed_posts', id=self.id), 'post_count': self.posts.count() } return json_user def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"