You can download this code by clicking the button below.
This code is now available for download.
This code snippet demonstrates how to create a simple login system using the Flask-Login library. It includes user model, user loader, login, logout, and protected routes.
Technology Stack : This code snippet demonstrates how to create a simple login system using the Flask-Login library. It includes user model, user loader, login, logout, and protected routes.
Code Type : Flask Login Function
Code Difficulty : Intermediate
from flask import Flask, request, redirect, url_for
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user
app = Flask(__name__)
app.secret_key = 'your_secret_key'
# Create a user loader function
@login_manager.user_loader
def load_user(user_id):
# This should return the user object or None if user does not exist
return User.query.get(int(user_id))
# User class inheriting from UserMixin
class User(UserMixin):
def __init__(self, id):
self.id = id
# Dummy database of users
users = {
1: {'username': 'admin', 'password': 'admin'}
}
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
user = users.get(username)
if user and user['password'] == password:
user_instance = User(user['id'])
login_user(user_instance)
return redirect(url_for('dashboard'))
else:
return 'Invalid username or password'
return '''
<form method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="Login">
</form>
'''
@app.route('/dashboard')
@login_required
def dashboard():
return 'Welcome to the dashboard'
@app.route('/logout')
@login_required
def logout():
logout_user()
return 'You have been logged out'
if __name__ == '__main__':
app.run(debug=True)