from flask import Flask, render_template, request, redirect, url_for from flask_login import LoginManager, UserMixin, login_required, login_user, current_user, logout_user app = Flask(__name__) app.secret_key = 'secret_key' login_manager = LoginManager(app) login_manager.login_view = 'login' login_manager.login_message = 'Please login to access this page' users = {'admin': {'password': 'admin123'}} class User(UserMixin): pass @login_manager.user_loader def load_user(username): if username in users: user = User() user.id = username return user @app.route('/') def home(): return render_template('home.html', user=current_user) @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] if username in users and password == users[username]['password']: user = load_user(username) login_user(user) return redirect(url_for('home')) else: return render_template('login.html', error='Invalid username or password') else: return render_template('login.html') @app.route('/logout') @login_required def logout(): logout_user() return redirect(url_for('home')) if __name__ == '__main__': app.run(debug=True)In this example, we have defined a simple Flask app with a home page and a login/logout system. We have also defined a `login_message` that will be displayed to the user whenever they try to access a protected resource without being authenticated. The `login` function handles the authentication process, and if the user enters wrong credentials, it shows the custom error message defined in `login_message`. The `logout` function logs out the user if they are currently logged in. The package/library used in this example is `Flask-Login`.