[Django] 로그아웃, 쉽고 자세한 구현



Django(장고) 로그아웃 구현 과정

지난 글(로그인 구현)에 이어서, 이번에는 장고로 로그아웃 구현하는 과정을 써보려고 합니다. 로그인 보다 훨씬 간단해요!

그리고, 이번에도 로그아웃 구현에 앞서서, accounts 앱 생성 및 등록, 앱네임 accounts설정, url 분리는 되어있어야 합니다 ㅎㅎ. 그럼 시작하겠습니다.

1) 메인페이지에서 로그아웃 버튼 추가

<h1>메인 페이지</h1>
<form action="{% url 'accounts:logout' %}" method="POST">
  {% csrf_token %}
  <input type="submit" value="LOGOUT">
</form>


  1. 로그아웃도 POST 요청이기에 a태그로 작성하면 안되고 form 태그로 작성해야해요.

  2. logout url은 아직 안 만들었지만, accounts앱의 logout url로 전송하도록 만들어 줍니다.

  3. 당연히 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')


  1. login처럼 logout 함수를 사용하려면 import 해줘야해요. 또 이름이 지금 우리가 만드는 logout 함수와 이름이 같으니, auth_logout이라는 이름으로 import 해줍니다.

  2. auth_logoutrequest를 넣고 로그아웃 해줍니다.

  3. 메인페이지로 리다이렉트 해줍니다.(꼭 메인페이지는 아니어도 되죠..!) 그럼 끗!!!




네, 이렇게 장고 로그아웃 기능도 끝이 났네요. 제가 잘못 알려드린 점이 있다면 댓글로 꼭 남겨주세요! 글 읽어 주셔서 감사합니다~!

CATEGORIES:

Tags:

No Responses

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다