Coding/Python
[Python] Flask에서 Session(세션) 사용 방법 및 예제 (공식문서 참조)
포스트it
2021. 3. 12. 16:24
728x90
반응형

Python Flask - session 사용방법을 간단하게 알아보자 !
본 코드는 Flask 공식 문서를 참조 하였습니다.
공식문서 링크 참조
https://flask.palletsprojects.com/en/1.1.x/quickstart/#sessions
아래가 공식문서에 나온 설명 및 코드인데.......
음 이런건 어려우니 건너뛰고 코드를 사용해보겠습니다.

공식문서에 있는 코드에 살짝 보기 좋게 바꿔주고,
코드에 대한 설명은 따로 주석으로 달아놨습니다.
from flask import Flask, url_for, request, session, redirect, app
from markupsafe import escape
from datetime import timedelta
app = Flask(__name__)
app.secret_key = 'secretkey' # secret_key는 서버상에 동작하는 어플리케이션 구분하기 위해 사용하고 복잡하게 만들어야 합니다.
app.config["PERMANENT_SESSION_LIFETIME"] = timedelta(minutes=1) # 로그인 지속시간을 정합니다. 현재 1분
@app.route('/')
def index():
if 'username' in session: # session안에 username이 있으면 로그인
return '로그인 성공! 아이디는 %s' % escape(session['username']) + \
"<br><a href = '/logout'>로그아웃</a>"
return "로그인 해주세요. <br><a href = '/login'> 로그인 하러가기! </a>" # 로그인이 안될 경우
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST': # request.method를 통해 GET & POST 인지 확인함.
session['username'] = request.form['username']
return redirect(url_for('index'))
return '''
<form action = "" method = "post">
<p><input type = "text" name = "username" /></p>
<p><input type = "submit" value = "Login" /></p>
</form>
'''
@app.route('/logout')
def logout():
session.pop('username', None)
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
결과값



로그아웃을 누르면 다시 첫 화면으로 돌아가고,
로그인 지속시간을 1분으로 설정했기 때문에 1분이 지난 후
새로고침을 누르면 자동로그아웃이 된답니다 ㅎㅎ
728x90
반응형