Django

[django] session 사용법

a-몬드 2022. 4. 25. 17:25
반응형


django의 session

django는 session기능을 지원한다. 서버에서 데이터를 저장하고 쿠키의 송수신을 한다. 

자세히 설명하자면 데이터는 서버에 저장해 놓고 세션 아이디를 쿠키에 저장한다. 

완벽하다고는하는데,,나한테는 완벽하게 적용되지 않는다,ㅜ 해결하려고 정리하는 글을 작성해 본다.

session 활성화

django의 session은 미들웨어를 통해 구현된다. 그래서 활성화 하기 위해서는 

settings.py에  MIDDLEWARE에 아래의 문구가 있어야한다. 기본적으로 존재하는 문구이다.

#settings.py

MIDDLEWARE = [
    #..생략
    'django.middleware.common.CommonMiddleware',
    #..
]

 

데이터베이스 지원 세션

데이터베이스 지원 세션을 사용하려면 settins.py의 INSTALLED_APPS에 추가해줘야한다.

추가 세션 데이터를 저장하는 DB 테이블을 생성하기 위해 manage.py migrate를 실행해준다.

#settings.py

INSTALLED_APPS = [
    'django.contrib.sessions',
    #..생략
]

 

세션 사용 방법

저장할 때

#login 기능 있는 views.py

request.session['auth'] = user.user_uid #유저의 고유 정보를 session에 키값 auth로 저장한다.

다른 views.py에서 사용자 정보를 확인할 때

#다른 views.py 사용자 확인 

userAuth = get_object_or_404(User, user_uid = request.session['auth'])
#session auth에 담겨있는 사용자의 정보를 꺼내는 작업

 

이정도 하면 다들 되던데 현재 지금 브라우저 쿠키에 session id가 저장된게 보이지 않는다. 

근데 또 포스트맨으로 테스트하면 쿠키가 잘 저장되어있다. 

브라우저 쿠키 허용도 해보고 별짓다하는데 안되고 있어서 답답한 심정이다.

해결 했다. 추후 관련 내용은 올릴지 말지 미지수

 

덕분에 공식문서를 정독했다. 공식문서가 어렵지 않다는 걸 느꼈고 공식문서를 읽는걸 습관화 해야겠다.

 

반응형