개발/PYTHON-DJANGO

파이썬 DJANGO 로그인/로그아웃 사용시 settings.py 추가 항목

Aireee 2021. 9. 26. 10:25
300x250
반응형

파이썬 장고(Python Django) 사용시, 로그인/로그아웃기능을 사용하는 경우는 매우 많다. 

회원가입을 받지 않는 사이트를 만드는 경우라면 모르겠지만, 회원가입이 있다면 당연히 로그인이 있고, 로그인이 있으면 로그아웃이 있는법이니 말이다. 재미있는 사실은 파이썬 장고에선 직접 로그인/로그아웃 모듈을 만들 필요가 없다는 사실이다. 

거의 필수적으로 사용하는 모듈이기 때문에, 사용을 위한 페이지와 사용자가 설정해야 할 몇몇 부분외에는 모두 구현되어 있기 때문이다. 

사용자마다 다르겠지만, 회원과 관련된 모듈을 하나의 앱으로 생성하는 것을 추천한다.
이렇게 하면 재사용도 편리하니까 말이다. 

기본적으로 하나의 기능을 만들 때에는 views.py 에 기능을 넣고 templates 에 페이지를 넣으며, urls.py 로 연결을 해준다. 로그인과 로그아웃 기능은 views.py 는 작성할 필요가 없다. 그저 urls.py 를 작업해주고, templates 에 회원가입이나 로그인창정도를 만들어주면 된다. 물론 mypage 나 그런건 추가로 만들어주기는 해야겠지만 말이다

urls.py 에는 다음의 내용을 추가하면 된다

from django.urls import path
from django.contrib.auth import views as auth_views

urlpatterns = [
    path('login/', auth_views.LoginView.as_view(template_name='login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]

urlpatterns 안에 login 부분의 templates_name= 의 login.html 은 실제 로그인 페이지의 경로를 잡아주면 된다. 이렇게만 하면 로그인 페이지를 보여주고, 로그아웃을 하면 로그아웃 페이지를 보여준다. 

그런데, 우리가 직접 views.py 를 구현하지 않았기 때문에 로그인 되면 이동할 페이지와, 로그아웃되면 이동할 페이지를 따로 지정할 필요가 있다. 그 지정은 settings.py 에서 진행한다

# 로그인 성공후 이동하는 URL
LOGIN_REDIRECT_URL = '/'
# 로그아웃시 이동하는 URL
LOGOUT_REDIRECT_URL = '/'

이 내용을 문서에 추가하기만 하면 끝!

참 쉽죠? 

반응형