본문 바로가기
Django

[Django] user CRUD(3) - 로그인과 로그아웃

by 기록하는_사람 2022. 12. 20.

로그인

📌 로그인

① index.html에 로그인 버튼 생성.

(index.html)

<h1>INDEX PAGE</h1>

<a href="{% url 'login' %}"><button>LOGIN</button></a>

 

② 로그인 페이지 생성.

(login.html)

<h1>LOGIN PAGE</h1>

<form method="post">
    {% csrf_token %}
    <input name="uname" type="text" placeholder="USERNAME"><br><br>
    <input name="upass" type="password" placeholder="PASSWORD"><br><br>
    <button>LOGIN</button>
    <a href="{% url 'index' %}"><button type="button">HOME</button></a>
</form>

 

③ (acc/urls.py)

from django.urls import path
from . import views

urlpatterns = [
    path('index/', views.index, name="index")   ,
    path('login/', views.userlogin, name="login") 
]

 

④ 로그인 구현.

(acc/views.py)

from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login

# Create your views here.
def index(request):
    return render(request, "acc/index.html")

def userlogin(request):
    if request.method == "POST":
        un = request.POST.get("uname")
        up = request.POST.get("upass")
        user = authenticate(username=un, password=up)
        if user:
            login(request, user)
            return redirect("index")
        else:
            pass
    return render(request, "acc/login.html")

 

💡 login함수를 사용해야 하므로, 이름을 다르게 설정해야 함.

 

로그아웃

📌 로그아웃

① 로그인된 경우, 로그아웃 버튼 보이도록 index.html에 생성.

(index.html)

<h1>INDEX PAGE</h1>

{% if user.is_authenticated %}
    <a href="{% url 'logout' %}"><button>LOGOUT</button></a>
{% else %}
    <a href="{% url 'login' %}"><button>LOGIN</button></a>
{% endif %}

 

② (acc/urls.py)

from django.urls import path
from . import views

urlpatterns = [
    path('index/', views.index, name="index")   ,
    path('login/', views.userlogin, name="login"),
    path('logout/', views.userlogout, name="logout"),
]

 

③ 로그아웃 구현.

(acc/views.py)

from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout

# Create your views here.
...

def userlogout(request):
    logout(request)
    return redirect("index")

'Django' 카테고리의 다른 글

[Django] user CRUD(5) - 회원 삭제(D)  (0) 2022.12.21
[Django] user CRUD(4) - 회원 정보 보기(R)  (0) 2022.12.21
[Django] User CRUD  (0) 2022.12.20
[Django] 로그인과 로그아웃  (0) 2022.12.20
[Django] user CRUD(2) - User 생성  (0) 2022.12.20

댓글