Python
flask 에서 Cookie , Session Storage를 활용해 보자
BaekGyuHyeon
2022. 5. 12. 09:23
API를 구현하면서 특정한 데이터를 반복적으로 요청하는 경우가 있다.
나의 경우에는 로그인한 사용자 ID를 요청하는 경우였다.
그 경우 Cookie나 Session Storage를 사용하면 쉽게 정보를 담고 뺄수 있다.
from flask import Flask,request,make_response,session
# sessionStorage를 사용하려면 secret key 값을 주어야 한다.
MYSECRET = 'this is my key'
app.secret_key = MYSECRET
#cookie 조회하기
@app.route('/getcookie/<key>',methods=['POST'])
def get_cookie(key):
res = request.cookies.get(key)
return res
# make_response를 사용해서 cookie를 set한 페이지를 쉽게 반환해보자
# make_response(render_template('index.html'))처럼 page를 반환할수 있다.
@app.route('/setcookie')
def set_cookie():
key = request.form['key']
value = request.form['value']
res = make_response('your cookie is create')
res.set_cookie(key,value)
# 혹은 간단하게
request.cookies.add(key,value)
return res
# cookie 삭제하기
@app.route('/delete_cookie/<key>')
def delete_cookie(key):
res = make_response(key+'쿠키가 삭제되었습니다.')
res.delete_cookie(key)
#혹은
request.cookie.pop(key,None)
return res
# session storage에 저장된 값 조회하기
@app.route('/getsessiondata/<key>')
def get_session_data(key):
res = session[key]
return res
# session storage에 값 저장하기
@app.route('/setsessiondata',methods=['POST'])
def set_session_data():
key = request.form['key']
value = request.form['value']
session[key] = value
return '저장되었습니다.'
# session storage에 값 제거하기
@app.route('/removesessiondata/<key>',methods=['DELETE'])
def delete_session_data(key):
session.pop(key,None)
return key+'가 제거되었습니다.'
Cookie는 데이터를 브라우저에서 설정한 기간동안 계속 유지하고 있고 최대 4kb의 데이터를 저장할 수 있다.
반대로 session storage는 5Mb의 용량을 담을수 있고 session이 닫히면 함께 데이터를 삭제함으로 cookie보다 성능면으로나 보안면으로나 훨씬 좋다.