일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- javascript
- bean
- programmers
- cookie
- SseEmitter
- WIL
- JWT
- oauth
- Spring Security
- python
- 항해99
- web
- google oauth
- jenkins
- JPA
- real time web
- Java
- spring
- Project
- Hibernate
- session
- server send event
- Stream
- flask
- 생명주기 콜백
- jQuery
- DI
- Anolog
- html
- hanghae99
Archives
- Today
- Total
끄적끄적 코딩일지
flask 에서 Cookie , Session Storage를 활용해 보자 본문
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보다 성능면으로나 보안면으로나 훨씬 좋다.
'Python' 카테고리의 다른 글
flask 에서 JWT를 사용한 인증하기 (0) | 2022.05.12 |
---|---|
Jinja2를 사용해서 페이지를 만들어보자 (0) | 2022.05.11 |
[python] APScheduler 사용하기 (0) | 2022.05.10 |
BeautifulSoup + Selenium을 이용한 동적 페이지 크롤링 (0) | 2022.05.10 |
Flask 사용하기 (0) | 2022.03.24 |