from app import db from flask_login import UserMixin from datetime import datetime from werkzeug.security import check_password_hash, generate_password_hash class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) email = db.Column(db.String(120), index=True, unique=True) password_hash = db.Column(db.String(128)) about_me = db.Column(db.String(140)) last_seen = db.Column(db.DateTime, default=datetime.utcnow) token = db.Column(db.String(32), index=True, unique=True) def __repr__(self): return f'' def to_dict(self): return { "id": self.id, "username": self.username, "email": self.email, "about_me": self.about_me, } 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)