[Django] Cookie 다루기

Infinity-blue·2023년 7월 17일
0

Django에서 cookie를 설정하는 방법에 앞서 Session과 Cookie의 차이점을 알아보자.

브라우저가 서버로부터 받은 쿠키(사용자 정보)를 사용자의 웹 부라우저에 저장함. 웹 브라우저가 종료되면 삭제되지만, 만료 날짜를 정해둘 시 만료일에 삭제된다.

Session

서버로부터 응답받은 세션 ID가 담긴 쿠키를 브라우저에 저장하고 이 쿠키를 통해 웹 서버간의 커뮤니케이션을 실행함(세션 ID는 서버에 저장된 사용자의 정보에 접근하기 위한 도구). 웹 브라우저가 종료되면 세션 쿠키는 삭제된다.


쿠키 생성 및 쿠키 유무 확인

views.py

def checkCookie(request):
    mycookie_value = request.COOKIES.get('mycookie')
    if mycookie_value == 'cookievalue':
        # Cookie exists and has the expected value
    else:
        # Cookie is not set or has a different value

def set_cookie(request):
    response = HttpResponse("Cookie Set!")
    response.set_cookie('mycookie', 'cookie_value')
    return response

쿠키 삭제

views.py

def deleteCookie(request):
    response = HttpResponse("Cookie Deleted!")
    response.delete_cookie('mycookie')
    return response

위의 함수를 실행시키면 서버에 있는 쿠키가 삭제되는데, 사용자의 부라우저에 있는 쿠키도 아래와 같이 삭제를 해야한다.

client-side

  function clearCookie(name) {
    document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
  }

Reference
https://www.pythontutorial.net/django-tutorial/django-cookies/

1개의 댓글

comment-user-thumbnail
2023년 7월 17일

항상 좋은 글 감사합니다.

답글 달기