본문 바로가기
python web framework

플라스크(flask) session을 이용한 로그인 / 로그아웃

by 타닥타닥 토다토닥 부부 2023. 3. 29.
반응형

플라스크(flask session)을 이용한 로그인 / 로그아웃

 

python  코드

from flask import Flask, render_template, request, redirect, session

app = Flask(__name__)
app.secret_key = 'supersecretkey'

users = {
    'id1': 'password123',
    'id2': 'password456'
}

@app.route('/')
def index():
    if 'username' in session:
        return f'Logged in as {session["username"]}<br><a href="/logout">Logout</a>'
    else:
        return redirect('/login')

@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 users[username] == password:
            session['username'] = username
            return redirect('/')
        else:
            return render_template('login.html', error='Invalid username or password')
    else:
        return render_template('login.html')

@app.route('/logout')
def logout():
    session.pop('username', None)
    return redirect('/')

if __name__ == '__main__':
    app.run(debug=True)

 

 

html 코드

<!DOCTYPE html>
<html>
<head>
	<title>Login</title>
</head>
<body>
	{% if error %}
		<p style="color:red">{{ error }}</p>
	{% endif %}
	<form method="post">
		<label for="username">Username:</label>
		<input type="text" id="username" name="username"><br>
		<label for="password">Password:</label>
		<input type="password" id="password" name="password"><br>
		<input type="submit" value="Login">
	</form>
</body>
</html>

 

 

 

반응형

댓글