728x90
Python에서 Flask로 앞에서 session를 이용해서 로그인을 만들었는데
Html이 Python에 있으니 코드가 지저분해보인다.
그래서, render_template를 사용해서 HTML를 login.html, index.html
불려와서 보여주자.
※ HTML 파일 경로
templates\
※ 소스
1. login.py
from flask import Flask, session, render_template, request, redirect, url_for
app = Flask(__name__)
# Set the secret key to some random bytes. Keep this really secret!
#app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
app.secret_key = b'test'
@app.route('/')
def index():
if 'username' in session:
return render_template('index.html')
return redirect(url_for('login'))
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
session['username'] = request.form['username']
return redirect(url_for('index'))
return render_template('login.html')
@app.route('/logout')
def logout():
# remove the username from the session if it's there
session.pop('username', None)
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
2. \templates\index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flask Index</title>
</head>
<body>
Logged in as {{session["username"]}}<br>
<a href="logout">logout</a>
</body>
</html>
3. \templates\login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flask Login</title>
</head>
<body>
<form method="post">
<p><input type=text name=username>
<p><input type=submit value=Login>
</form>
</body>
</html>
※ 실행
py login.py
728x90
반응형
'Software > Python' 카테고리의 다른 글
Python시작하기 - QRcode (0) | 2024.07.30 |
---|---|
파이선 소개(chatGPT작성) (1) | 2024.07.23 |
Flask 시작하기 - session 사용 (0) | 2024.07.16 |
Python 시작하기 - Flask 소개 (0) | 2024.07.16 |
Python 시작하기 - Mysql 활용 (0) | 2024.07.07 |