본문 바로가기
Always Awake/Django 기본 정리(20.01.14~)

AskDjango 중급 - 기본인증편

by 욕심많은알파카 2020. 1. 23.

1. generic view

Django에서는 자주 사용하는 뷰들을 만들어 모듈의 형식으로 기본제공하는데, 이것을 generic view라고 한다.

 

generic view를 사용하기 위해서는 from django.view import generic을 통해 제네릭 뷰를 먼저 임포트해야한다.

 

generic view의 종류는 다음과 같다.

'View', 'TemplateView', 'RedirectView', 'ArchiveIndexView',

'YearArchiveView', 'MonthArchiveView', 'WeekArchiveView', 'DayArchiveView',

'TodayArchiveView', 'DateDetailView', 'DetailView', 'FormView',

'CreateView', 'UpdateView', 'DeleteView', 'ListView', 'GenericViewError'

 

 

 

 

2. auth모듈

장고에서는 인증기능을 쉽게 사용할 수 있도록 미리 구현해놓은 django.contrib.auth 모듈을 제공하고있다.

 

auth 모듈에는 로그인, 로그아웃 뷰와 계정관련 기능 등 여러가지가 들어가 있다. 사용자는 별다른 view를 준비할 필요 없이 auth내의 클래스 뷰를 활용해 템플릿과 urls.py만으로 간단한 로그인 로그아웃기능을 구현할 수 있다.

 

 

 

3. ?next=의 사용법

쇼핑몰에서 마음에 드는 물건을 사려고 로그인페이지를 눌러 로그인을 했다고 하자. 이 때 로그인이 완료되면 자동으로 홈페이지로 리다이렉트되는 경우가 있다. 이 경우 다시 원하는 상품을 사기 위해 해당 상품 페이지를 찾아 들어가야한다.

 

이런 불편한 인터페이스를 막기 위해, 로그인페이지로 들어갈 때(또는 상품을 보다가 중간에 잠시 다른 페이지로 빠질 때) 다음 페이지가 아까 그 URL주소로 연결 되도록 URL을 조정할 수 있다.

 

해당 페이지의 URL 뒤에 /?next={{ request.path }}가 추가되도록 태그의 action 속성에 넣어주는것이다. 

 

이전에도 포스팅했지만, URL의 구성요소 중 도메인 명과 파일 경로 뒤에는 query문과 reference가 붙는다.

‘/?next={{ request.path }}’ 에 붙어있는 /?는 도메인과 파일경로가 끝나고 query문이 시작했음을 알려주는 표시이다. 즉, next(다음페이지)로 {{ request.path }}, 즉 원래 페이지의 경로로 가라고 명시해주는 것이다.

 

 

댓글