파이썬 장고(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 = '/'
이 내용을 문서에 추가하기만 하면 끝!
참 쉽죠?
'개발 > PYTHON-DJANGO' 카테고리의 다른 글
PYTHON > DJANGO > MYSQL 시작 (0) | 2021.09.02 |
---|---|
파이썬 장고 7. 데이터베이스 Mysql(MariaDB) 연결 (0) | 2021.06.21 |
파이썬 장고 5. include, extend,block 을 사용한 템플릿구성 (0) | 2021.06.21 |
파이썬 장고 4. 직접코드에서 템플릿 연결로 변경 (0) | 2021.06.21 |
파이썬 장고 3. 연습1 - Hello World (0) | 2021.06.21 |