class Post(db.Model): __tabel__ = "Post" __searchable__ = ['content'] # these fields will be indexed by whoosh id = db.Column(db.Integer, primary_key=True) content = db.Column(db.Text, nullable=False) date_created = db.Column(db.DateTime, default=datetime.now()) proFimage = db.Column(db.String(50), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
class User(db.Model, UserMixin): __tabel__ = "User" __searchable__ = ['name', 'phoneNumber'] # these fields will be indexed by whoosh id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(200), nullable=False) userName = db.Column(db.String(150), nullable=False, unique=True) email = db.Column(db.String(200), nullable=False, unique=True) phoneNumber = db.Column(db.Integer(), nullable=False) password = db.Column(db.String(200), nullable=False) gender = db.Column(db.String(50), nullable=False) proFimage = db.Column(db.String(50), nullable=False) proLink = db.Column(db.String(250), nullable=False, unique=True) date_created = db.Column(db.DateTime, default=datetime.now()) posts = db.relationship('Post', backref='person', lazy=True) # function def get_reset_token(self, expires_sec=1800): s = Serializer(Config.SECRET_KEY, expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): s = Serializer(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): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) profile_image = db.Column(db.String(20), 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}"
class BlogPost(db.Model, UserMixin): 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} -- Title: {self.title}"
class Vister(db.Model): __tabel__ = "Vister" __searchable__ = ['content'] # these fields will be indexed by whoosh id = db.Column(db.Integer, primary_key=True) ip = db.Column(db.String(100), nullable=False)