Source code for app.classes
from flask_login import UserMixin
from werkzeug.security import check_password_hash
from werkzeug.security import generate_password_hash
from app import db, login_manager
[docs]class User(db.Model, UserMixin):
"""Class to store user information"""
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique=True, nullable=False)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(80), unique=True, nullable=False)
password_hash = db.Column(db.String(120), nullable=False)
def __init__(self, name, username, email, password):
self.name = name
self.username = username
self.email = email
self.set_password(password)
[docs] def set_password(self, password):
self.password_hash = generate_password_hash(password)
[docs] def check_password(self, password):
return check_password_hash(self.password_hash, password)
db.create_all()
db.session.commit()
# user_loader :
# This callback is used to reload the user object
# from the user ID stored in the session.
[docs]@login_manager.user_loader
def load_user(id):
"""Route to load a user from the user database"""
return User.query.get(int(id))