Django(장고) 로그아웃 구현 과정
지난 글(로그인 구현)에 이어서, 이번에는 장고로 로그아웃 구현하는 과정을 써보려고 합니다. 로그인 보다 훨씬 간단해요!
그리고, 이번에도 로그아웃 구현에 앞서서, accounts 앱 생성 및 등록, 앱네임 accounts설정, url 분리는 되어있어야 합니다 ㅎㅎ. 그럼 시작하겠습니다.
1) 메인페이지에서 로그아웃 버튼 추가
<h1>메인 페이지</h1>
<form action="{% url 'accounts:logout' %}" method="POST">
{% csrf_token %}
<input type="submit" value="LOGOUT">
</form>
- 로그아웃도 POST 요청이기에 a태그로 작성하면 안되고 form 태그로 작성해야해요.
- logout url은 아직 안 만들었지만, accounts앱의 logout url로 전송하도록 만들어 줍니다.
- 당연히 csrf_token도 넣어줘야죠. 제출 버튼도 만들고요!
2) accounts/urls.py에 로그아웃 url 추가
urlpatterns = [
...,
path('logout/', views.logout, name='logout'),
]
3) accounts/views.py에 로그아웃 함수 작성
from django.contrib.auth import logout as auth_logout
def logout(request):
auth_logout(request)
return redirect('articles:index')
- login처럼 logout 함수를 사용하려면 import 해줘야해요. 또 이름이 지금 우리가 만드는 logout 함수와 이름이 같으니, auth_logout이라는 이름으로 import 해줍니다.
- auth_logout에 request를 넣고 로그아웃 해줍니다.
- 메인페이지로 리다이렉트 해줍니다.(꼭 메인페이지는 아니어도 되죠..!) 그럼 끗!!!
네, 이렇게 장고 로그아웃 기능도 끝이 났네요. 제가 잘못 알려드린 점이 있다면 댓글로 꼭 남겨주세요! 글 읽어 주셔서 감사합니다~!
No Responses