로그인 기능을 위해 생각해야 할 조건들이 있다.
- 로그인 한 유저가 DB 에 존재하는지
- 만약 존재한다면 어떻게 인증을 해야 하는지
- 인증에 성공했다면 로그인을 시켜주고
- redirect 로 원하는 페이지로 이동
app # root
ㄴ config
ㄴ members
ㄴ urls.py
ㄴ views.py
ㄴ templates
ㄴ accounts
ㄴ login.htmlCBV 를 통한 구현 방법
# 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 |