반응형
플라스크(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>
반응형
'python web framework' 카테고리의 다른 글
flask render_template, flask html 파일 연동 (0) | 2023.04.21 |
---|---|
플라스크 시작하기 flask hello world, hello flask, hellp python (0) | 2023.04.06 |
flask 폴더에 있는 이미지 불러오기 html (0) | 2023.03.22 |
flask css 파일 연동 하기 / 플라스크 css 파일 적용하기 (0) | 2023.03.21 |
주피터노트북 파일을 웹서비스에 끼워 넣기 (flask) (0) | 2023.03.20 |
댓글