Django 사용자 로그인 및 로그아웃 (1)

5158 단어 Django
함수 및 표준 프런트엔드 기반
1.views를 잘 쓰세요.py 함수
django.contri.auth 내장 authenticate,login,logout.
authenticate는 사용자 정보가 올바른지 확인하고 이 사용자를 되돌려줍니다. 그렇지 않으면 None을 되돌려줍니다.
login, logout은 각각 로그인과 로그아웃에 사용
from django.shortcuts import render, redirect
from django.urls import reverse
from django.contrib.auth import authenticate, login, logout


#     
def user_login(request):
    if request.method == "GET":
        return render(request, "login.html")
    if request.method == "POST":
        username = request.POST.get("username", "")
        password = request.POST.get("password", "")
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect(reverse("index"))
        else:
            return render(request, "login.html")


def user_logout(request):
    logout(request)
    return redirect(reverse("index"))

2、urls를 설정합니다.py
from django.contrib import admin
from django.urls import path, re_path
from django.views.generic.base import TemplateView

from users import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', TemplateView.as_view(template_name="index.html"), name="index"),
    re_path('^login/$', views.user_login, name="login"),
    re_path('^logout/$', views.user_logout, name="logout"),
]

3. bootstrap을 이용하여 앞머리를 쓴다
만약 사용자가 로그인했다면, Request.user.is_authenticated는 진실입니다. 단어 함수로 사용자가 로그인했는지 여부를 판단합니다.
index.html



    
      
    
	
	


    

login.html



    
      
    
	
	


    
{% csrf_token %}

클래스 기반 보기와forms를 업데이트해서 검증할 시간이 있습니다.
자세한 내용은 공식 문서에 기재할 수 있습니다.https://docs.djangoproject.com/en/2.1/topics/auth/default/

좋은 웹페이지 즐겨찾기