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(120), nullable=False, default='default.jpg') password = db.Column(db.String(120), nullable=False) #lazy use for database posts = db.relationship( 'Post', backref='author', lazy=True ) #backref use to add another column like new author who create the post #set token 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 #use to no need to use self as a argument 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) #magic method def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class Image(db.Model): id = db.Column(db.Integer, primary_key=True) path = db.Column(db.Unicode(128)) posts = db.relationship('Post', backref='image', lazy=True) def __unicode__(self): return self.name
class TimestampMixin(object): """Model to track creation and update times.""" created_timestamp = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) updated_timestmap = db.Column(db.DateTime, onupdate=datetime.utcnow)
class File(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Unicode(64)) path = db.Column(db.Unicode(128)) def __unicode__(self): return self.name
class Follow(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) follower_id = db.Column(db.Integer, nullable=False) followed_id = db.Column(db.Integer, nullable=False) def __repr__(self): return f"Post( '{self.follower_id}','{self.followed_id}' )"
class Comment(TimestampMixin, db.Model): id = db.Column(db.Integer, primary_key=True) body = db.Column(db.String(1000)) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) post_id = db.Column(db.Integer, db.ForeignKey('post.id')) def __repr__(self): return f'<Comment {self.body}>'
class Message(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(100), nullable=False) text = db.Column(db.String(3000), nullable=False) def __str__(self): return '<Message from {}: "{}">'.format(self.name, self.text)
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) password = db.Column(db.String(64), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) comments = db.relationship('Comment', backref='author', lazy='dynamic') def __repr__(self): return f"<User: {self.username}>"
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) def __repr__(self): return f"Post('{self.title}', '{self.date_posted}')"
class Comment(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) content = db.Column(db.Text, nullable=False) time = 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"Post( '{self.mainpost.id}','{self.time}' )"
class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) create_at = db.Column(db.DateTime, default=datetime.now) body = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) post_id = db.Column(db.Integer, db.ForeignKey('post.id'), nullable=False) def __repr__(self): return f'<Comment body>'
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(120), unique=False, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False) is_admin = db.Column(db.Boolean, nullable=False, default=False) blog_entries = db.relationship('BlogEntry', backref='author', lazy=True) def __repr__(self): return f"User('{self.email}')"
class Tag(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(app.config['TAG_NAME_LENGTH'])) def __init__(self, name): self.name = name def __repr__(self): return '<Tag %r>' % self.name
class user(db.Model,UserMixin): id=db.Column(db.Integer,primary_key=True,nullable=False) username=db.Column(db.String(120),nullable=False,unique=True) email=db.Column(db.String(120),nullable=False) password=db.Column(db.String(120),nullable=False) image_file=db.Column(db.String(120),nullable=False,default='default.jpg') post=db.relationship('posts',backref='author',lazy=True) def __repr__(self): return f"user('{self.username}','{self.email}','{self.image_file}','{self.password}')"
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(20)) username = db.Column(db.String(20)) password_hash = db.Column(db.String(128)) def set_password(self, password): self.password_hash = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password_hash, password)
class Tag(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) slug = db.Column(db.String(64), unique=True) def __init__(self, *args, **kargs): super().__init__(*args, **kargs) self.slug = slugify(self.name) def __repr__(self): return f"Tag('{self.name}')"
class Post(TimestampMixin, db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(120)) body = db.Column(db.String(1000)) private = db.Column(db.Boolean, default=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) comments = db.relationship('Comment', backref='original_post', lazy='dynamic') def __repr__(self): return f'<Post {self.body}>'
class Tore(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, nullable=False) username = db.Column(db.String(20), nullable=False) reply_id = db.Column(db.Integer, db.ForeignKey('reply.id'), nullable=False) def __repr__(self): return f"ReplyTo('{self.content}','{self.date_posted}','{self.reply_id}')"
class Project(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) data_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) replies = db.relationship('Reply', backref='project', lazy=True) def __repr__(self): return f"Project('{self.title}','{self.data_posted},,'{self.user_id}')"
class Reply(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, nullable=False) username = db.Column(db.String(20), nullable=False) project_id = db.Column(db.Integer, db.ForeignKey('project.id'), nullable=False) repliesto = db.relationship('Tore', backref='replies', lazy=True) def __repr__(self): return f"Reply('{self.content}','{self.date_posted}','{self.project_id},{self.username}')"
class Tag(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) slug = db.Column(db.String(100), nullable=False) def generate_slug(self): self.slug = '' if self.name: self.slug = slugtify(self.name) def __init__(self, *args, **kwargs): super(Tag, self).__init__(*args, **kwargs) self.generate_slug() def __repr__(self): return f"<Tag {self.name}>"
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(app.config['POST_TITLE_LENGTH'])) body = db.Column(db.String(app.config['POST_BODY_LENGTH'])) timestamp = db.Column(db.DateTime) tags = db.relationship('Tag', secondary=tags, backref=db.backref('posts', lazy='dynamic')) def __init__(self, title, body): self.title = title self.body = body self.timestamp = datetime.utcnow() def __repr__(self): return '<Post %r>' % self.title
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(255), nullable=False) body = db.Column(db.Text, nullable=False) slug = db.Column(db.String(255), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) created_at = db.Column(db.DateTime, default=datetime.now) last_modified = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now) tags = db.relationship("Tag", secondary=posts_tags, backref="posts", lazy="dynamic") comments = db.relationship('Comment', backref="post", lazy=True) def generate_slug(self): self.slug = '' if self.title: self.slug = slugtify(self.title) def __init__(self, *args, **kwargs): super(Post, self).__init__(*args, **kwargs) self.generate_slug() def __repr__(self): return f'<Post {self.title}>'
class BlogPost(db.Model): users = db.relationship(User) id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) title = db.Column(db.String(140), nullable=False) text = db.Column(db.Text, nullable=False) def __init__(self, title, text, user_id): self.title = title self.text = text self.user_id = user_id def __repr__(self): return f"Post ID: {self.id} -- Date: {self.date} --- {self.title}"
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) pfp = db.Column(db.String(20), nullable=False, default="defaultpfp.png") pfc = db.Column(db.String(20), nullable=False, default="defaultpfp.png") password = db.Column(db.String(16), nullable=False) username = db.Column(db.String(16), nullable=False) email = db.Column(db.String(45), nullable=False) description = db.Column(db.String(256), default="", nullable=False) activity = db.Column(db.String(126), default="I'm Someone :)", nullable=False) followers = db.Column(db.Integer, nullable=False , default = 0) posts = db.relationship('Post', backref='author', lazy=True) comments = db.relationship('Comment', backref='comment_author', lazy=True) def __repr__(self): return f"User('{self.username}','{self.email}','{self.password}','{self.pfp}','{self.pfc}','{self.description}','{self.activity}','{self.followers}')"
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(550), nullable=False) salt = db.Column(db.String(30), nullable=False) 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): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String, unique=True) password = db.Column(db.String(16)) def __init__(self, username, password): self.username = username self.password = password def is_active(self): return True def is_authenticated(self): return True def is_anonymous(self): return False def get_id(self): try: return unicode(self.id) except AttributeError: raise NotImplementedError("No 'id' attribute - override 'get_id'") def __eq__(self, other): if isinstance(other, UserMixin): return self.get_id() == other.get_id() return NotImplemented def __ne__(self, other): equal = self.__eq__(other) if equal is NotImplemented: return NotImplemented return not equal def __repr__(self): return '<User %r>' % self.username
class BlogEntry(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(200), unique=True, nullable=False) # url friendly version of title slug = db.Column(db.String(200), unique=True, nullable=False) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) date_updated = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) content = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) is_published = db.Column(db.Boolean, nullable=False, default=True) tags = db.relationship('Tag', secondary=entry_tag, backref='entries', lazy=True) def __init__(self, *args, **kargs): super().__init__(*args, **kargs) self.slug = slugify(self.title) def __repr__(self): return f"BlogEntry('{self.title}', '{self.date_posted}')" @property def markdown_content(self): ''' Convert markdown content into html ''' hilite = CodeHiliteExtension(linenums=False, css_class='highlight') extras = ExtraExtension() markdown_content = markdown(self.content, extensions=[hilite, extras]) return Markup(markdown_content) @property def preview_content(self): ''' grab the first image and first two paragraphs of a markdown content ''' soup = BeautifulSoup(self.markdown_content, 'html.parser') return [Markup(p) for p in soup.find_all('p')[:2]]
class Post(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) content = db.Column(db.Text, nullable=False) smallcontent = db.Column(db.Text, nullable=False) title = db.Column(db.String(100), nullable=False) time = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) likes = db.Column(db.Integer, nullable=False,default=0) comments = db.relationship('Comment', backref='mainpost', lazy=True) def __repr__(self): return f"Post( '{self.title}','{self.time}' )"
class User(db.Model, UserMixin): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) profile_image = db.Column(db.String(64), nullable=False, default='default_profile.png') email = db.Column(db.String(64), unique=True, index=True) username = db.Column(db.String(64), unique=True, index=True) password_hash = db.Column(db.String(128)) posts = db.relationship('BlogPost', backref='author', lazy=True) def __init__(self, email, username, password): self.email = email self.username = username self.password_hash = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password_hash, password) def __repr__(self): return f"Username {self.username}"