반응형
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
반응형
'Coding > Python' 카테고리의 다른 글
[Python] format(포맷팅) 방법 및 사용방법 (%, format,f-string) (0) | 2021.03.22 |
---|---|
[Python] 코드 실행,작동 시간 측정하기 - time() 함수 이용 (0) | 2021.03.19 |
[Python] Flask 초간단 설치 및 실행 방법 & 가상환경! (Hello World 띄우기) (0) | 2021.03.11 |
[Python] 네이버 실시간 검색어 크롤링(Crawling) ver.2 (0) | 2021.02.26 |
[Python] 단 10줄로 만드는 네이버 실시간 검색어 크롤링(Crawling) (0) | 2021.02.23 |
댓글