본문 바로가기
장고 프레임워크

장고 기본 인증) 1 로그인 처리

by 문자메일 2020. 6. 18.

https://github.com/django/django/tree/master/django

django/conf/global_settings.py

Django 기본 APP에서 LOGIN_URL의 default값은 아래에서 볼 수 있다. 

(@login_required 장식자 달린 함수 호출할때 로그인 안되어 있으면 Default는 LOGIN_URL 주소로 이동함)

그래서 계정 관련 APP 이름을 accounts로 만들면 해당 설정값 변경 없이 사용할 수 있다.

 

 

 

####

Django의 기본앱에 contrib에 auth 앱에 Account 관련 소스들이 존재한다.

https://github.com/django/django/tree/master/django/contrib/auth

auth/urls.py

 

Django Auth App에 Default LoginView의 템플릿 이름은 아래 처럼 'registration/login.html' 이다

https://github.com/django/django/blob/master/django/contrib/auth/views.py

하지만 아래와 같이 인자를 주면 LoginView에서는 self.template_name 이라는 이름으로 'accounts/login.html' 값이 저장이 된다. 위에 코드에서 Class 영역인 template_name = 'registration/login.html'을 변경하는 것이 아니라 Instance 영역에 세팅하여 활용을 하게 되는 구조이다.

path('login/', LoginView.as_view(template_name='accounts/login_form.html'), name='login'),

위 같은 방법으로 Custom을 하여 사용할 수 있다.

 

그리고 accounts/login_form.html 만들고 위에 코드만 적고 로그인 하면 로그인이 된다.

하지만 action=''도 비어있고, 어떤 form이 넘어오는지 확인 필요하다. 정확히 왜 되는지 모르는 상태이다.

(https://github.com/django/django/blob/master/django/contrib/auth/views.py 의

LoginView 클래스에서 무언가 form을 넘기겠지?)

댓글