config/settings.py 의 INSTALLED_APPS 안에 있는
"django.contrib.sessions",
Django의 세션(session) 기능을 활성화하는 앱이다.
세션 데이터 저장 / 세션 저장 방식 제공 / 자동 세션 관리의 기능을 한다.

이 모듈(django.contrib.sessions.backends.db)로 db.sqlite3의 django_session을 관리해준다.
pybo/urls.py에 urlpatterns 안에 path 추가
# dev_14
path("set-cookie/", views.set_cookie_view, name="set_cookie"),
path("get-cookie/", views.get_cookie_view, name="get_cookie"),
path("delete-cookie/", views.delete_cookie_view, name="delete_cookie"),
pybo/views.py에 함수 생성
# dev_14
def set_cookie_view(request):
"""쿠키 설정"""
response = HttpResponse("쿠키가 설정되었습니다.")
response.set_cookie("my_cookie", "cooki_value", max_age=3600) # 1시간동안 유지
return response
def get_cookie_view(request):
"""쿠키 가져오기"""
cookie_value = request.COOKIES.get("my_cookie", "쿠키가 없습니다.")
return HttpResponse(f"쿠키 값 : {cookie_value}")
def delete_cookie_view(request):
"""쿠키 삭제"""
response = HttpResponse("쿠키가 삭제되었습니다.")
response.delete_cookie("my_cookie")
return response
pybo/urls.py에 urlpatterns 안에 path 추가
# dev_14 session
path("set-session/", views.set_session_view, name="set_session"),
path("get-session/", views.get_session_view, name="get_session"),
path("delete-session/", views.delete_session_view, name="delete_session"),
pybo/views.py에 함수 생성
# session은 클라이언트와 무관
def set_session_view(request):
"""세션 설정"""
# 세션은 request로 받아올 수 있다.
request.session["username"] = "DjangoUser" # 세션값 저장
request.session.set_expiry(3600) # 1시간 후 만료
return HttpResponse("세션이 설정되었습니다.")
def get_session_view(request):
from django.contrib.sessions.models import Session
from django.contrib.sessions.backends.db import SessionStore
# 특정 세션 키 조회
session_key = "session_key1234" # 실제 저장된 session_key 입력
session = Session.objects.get(session_key=session_key)
# 세션 데이터 복호화
session_data = SessionStore(session_key=session_key).load()
print(session_data) # {'username': 'DjangoUser'}
"""세션 가져오기"""
username = request.session.get("username", "세션이 없습니다.")
return HttpResponse(f"세션 값 : { username }")
def delete_session_view(request):
"""세션 삭제"""
request.session.flush() # 모든 세션 데이터 삭제
# request.session.clear() # 세션의 세션 id만 삭제
return HttpResponse("세션이 삭제되었습니다.")