본문 바로가기
Coding/Python

[Python] Flask에서 Session(세션) 사용 방법 및 예제 (공식문서 참조)

by 포스트it 2021. 3. 12.
반응형

 

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
반응형

댓글