본문으로 바로가기

Login 기능 구현하기

category 장고/MTV 2019. 4. 21. 17:28

로그인 기능을 위해 생각해야 할 조건들이 있다.

  1. 로그인 한 유저가 DB 에 존재하는지
  2. 만약 존재한다면 어떻게 인증을 해야 하는지
  3. 인증에 성공했다면 로그인을 시켜주고
  4. redirect 로 원하는 페이지로 이동
app # root
 ㄴ config
 ㄴ members
       ㄴ urls.py
       ㄴ views.py
 ㄴ templates
       ㄴ accounts
             ㄴ login.html

CBV 를 통한 구현 방법

# urls.py

# views 로 참조하게 될 경우에는 실제 app 의 views.py 와 혼동할 수 있어 auth_views 로 재정의
from django.contrib.auth import views as auth_views

from django.urls import path

urlpatterns = [
    # CBV 를 url 에서 바로 적용하여 views 로 넘어가지 않고 템플릿으로 전달
    path('login/', auth_views.LoginView.as_view(template_name='accounts/login.html'), name='login'),
]
  • auth_views.LoginView 에는...

    • authenticate(self.request, username=username, password=password) 를 진행

    • AuthenticationForm 이 있어 username/password 의 Field 가 이미 정의되어 있음

      • {{ form }} 을 하면 바로 이 Form 에 정의한 값으로 사용자에게 보여짐

login.html

<form action="" method="post">
    {% csrf_token %}
    <table>
        {{ form.as_table }}
    </table>
    <input type="submit" />
</form>

'장고 > MTV' 카테고리의 다른 글

장고 CRUD 기능 구현(2) Read  (0) 2019.05.07
장고 CRUD 기능 구현(1) Create  (0) 2019.05.07
User 모델에서 Username 을 Email 로 재정의  (0) 2019.04.18
try, except 와 if else 를 써야할 때  (0) 2019.03.14
AbstractBaseUser 모델  (0) 2019.03.01