from flask import Flask, render_template, request, redirect, url_for, session from flask_mysqldb import MySQL # app = Flask(__name__) app.config['MYSQL_HOST'] = 'mysql' app.config['MYSQL_USER'] = 'root' app.config['MYSQL_PASSWORD'] = 'password' app.config['MYSQL_DB'] = 'login_demo' mysql = MySQL(app) # @app.route('/') def index(): if 'username' in session: username = session['username'] return f'Logged in as {username} | Logout | Dashboard' return 'You are not logged in | Login' @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] cursor = mysql.connection.cursor() cursor.execute('SELECT * FROM users WHERE username = %s AND password = %s', (username, password)) user = cursor.fetchone() cursor.close() if user: session['username'] = username return redirect(url_for('index')) else: return 'Login failed. Invalid username or password.' return render_template('login.html') @app.route('/dashboard') def dashboard(): if 'username' in session: return render_template('dashboard.html', username=session['username']) return redirect(url_for('login')) @app.route('/logout') def logout(): session.pop('username', None) return redirect(url_for('index')) if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')