[SSAC X 코딩온] (2021.09.03) Django로 CRUD 구현하기_03
🔖 세션 (Session) > 서버에 저장
-
세션이란, 서버가 클라이언트(웹브라우저)를 인지하게 하는 인증 정보다.
-
ex) 영화 예매, 비행기표 예매
-
토큰(Token)과의 차이점 :
-
서버가 세션을 생성, 그 웹브라우가 누군지를 인지하고 있다는 거야, 로그인하는 순간 서버가 세션을 생성해서 웹브라우저에 요청을 보낸다.
-
세션이 만료되었다는 뜻은 서버가 이 사람은 윤영우님이야라는 것을 알고 있었는 데 그 정보를 파기한다는 뜻 따라서 사용자의 정보를 일부러 까먹었다는 것을 의미한다.
-
서버 입장에서는 DA DB라는 좌석을 확보하엿음이라는 정보를 서버가 갖고 그것을 보통 20분을 준다. 다른 사람들에게 선택된 좌석을 선택하지 못하도록 정보를 사람들에게 제공해줌.
-
일반적으로 세션 만기(expire)시점은
웹브라우저 종료시
까지이다. -
단, 좌석 예매, 티켓 예매 같은 경우엔 10분 내지는 20분으로 제한하기도 한다.
-
세션이 만료되었다고 말하는 것이 그런게 사용자 친화적인 홈페이지를 만드려면 예약 시점으로부터 20분이 경과하여 "예약 시간이 너무 길어져서 처음부터 다시 하세요"라고 안내해 주기도 한다. 영어 창으로는 "Session Expire"이 뜬다.
-
이건 로그인할 때 만든다.
-
같은 웹브라우저가 다 꺼져야 세션이 종료되도록 Chrome이랑 Edge등이 설계되어있다.
-
📢 쿠키 (cookie) > 웹브라우저에 저장
-
검색 기록 등을 쿠키에 저장, 그리고 해당 기록 등을 토대로 알맞는 광고나 정보 등을 저장함.
-
검색 로그 ,기록 등을 웹브라우저가 갖고 있음. 서버에 쿠키 정보를 보내서 해당 정보에 맞는 광고를 보낸다.
-
다른 웹브라우저 간에는 공유되지 않음
-
개발자도구의 Application > cookie 에서 확인 가능
-
세션은 종료되면 정보가 다 날라가지만 쿠키는 정보를 엄청 오랫동안 저장한다.
📡 로그인 실습하기
-
(클라이언트) 폼에서 아이디, 비번 날린다!
-
서버에서 그 아이디와 비번에 매칭하는 DB데이터가 있는 지 검색한다.
-
- 없으면 로그인 실패
-
- 있으면 로그인 성공 → 로그인 한 사람 아이디로 세션 생성
-
-
서버에서 그냥 변수를 하나 만든다!
- views.py
req.session["id"] = req.POST.get("id") # ["id"]는 세션 변수, ("id")는 정보를 받아오는 name
req.session["pw"] = req.POST.get("pw")
a = 3
print(req.POST.get["id"])
- user, member, admin, session : Django 에서 기본으로 제공하는 기능들
-
query 셋 에러가 get으로 받아야 되는걸 filter로 받았기 때문에 발생한 것이다.
-
filter는 바구니에 쌓여잇는 상태로 쿼리 자체를 불러오는데 안에 뭐가 있는지 모르기 때문에 에러 발생
-
get은 안에 어떤 것을 가져온다고 확실히 선언하기 때문에 에러가 발생 안함.
-
세션 저장:
req.session['key'] = 값
-
세션 로드:
req.session.get('key') = 값
-
세션 삭제:
req.session.pop('key') = 값
-
redirct : 우리가 설정한 주소로 이동하는 역할을 수행한다.
-
../main
윗 경로로 이동하는 링크. 절대경로보다 효율성이 좋아서 쓰기 좋음static 폴더는 기본적으로
settings.py
에STATIC_URL = '/static/'
라고 설정되어 있어서 static 폴더를 그대로 사용할 예정이라면 따로 설정해주실 필요가 없다!
-
✅ 실습 과제
-
로그인 시점에 세션을 생성하여 임의의 경로로 접속하였을 때
-
- 세션이 없다면 → "로그인 먼저 해주세요" 메세지 출력
-
- 세션이 있다면 → "000님 환영합니다" 메세지 출력
-
-
각자 자유롭게 사이트 만들기 (ex: 쇼핑몰 등)
😫 수업 후기
Author And Source
이 문제에 관하여([SSAC X 코딩온] (2021.09.03) Django로 CRUD 구현하기_03), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ryu0114/SSAC-X-코딩온-2021.09.03-Django로-CRUD-구현하기03저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)