article

Monday, February 10, 2020

Login Page in Flask Using Sessions



Login Page in Flask Using Sessions
#app.py
from flask import Flask, request, session, redirect, url_for, render_template, g
import os

app = Flask(__name__)
app.secret_key = os.urandom(24)

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        session.pop('user', None)

        if request.form['password'] == 'password':
            session['user'] = request.form['username']
            return redirect(url_for('protected'))

    return render_template('index.html')

@app.route('/protected')
def protected():
    if g.user:
        return render_template('protected.html')

    return redirect(url_for('index'))

@app.before_request
def before_request():
    g.user = None
    if 'user' in session:
        g.user = session['user']

@app.route('/getsession')
def getsession():
    if 'user' in session:
        return session['user']

    return 'Not logged in!'

@app.route('/dropsession')
def dropsession():
    session.pop('user', None)
    return 'Dropped!'
 
if __name__ == '__main__':
    app.run(debug=True)
//index.html
<html>
<head>
    <title>Login Page</title>
</head>
<body>
<h1>Login Page in Flask Using Sessions</h1>
<h1>Please login</h1>
<form method="POST">
    <input type="text" name="username">
    <input type="password" name="password">
    <input type="submit">
</form>
</body>
</html>
//protected.html
<html>
<head>
    <title>Protected Page</title>
</head>
<body>
<h1>Welcome to the protected page!</h1>
</body>
</html>

Related Post