django自帶的登錄驗證功能


django自帶的驗證機制

from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout  #登入和登出

from django.contrib.auth.decorators import login_required  # 驗證用戶是否登錄

def acc_login(request):


    if request.method == "POST":
        username = request.POST.get("username")
        password = request.POST.get("password")

        user = authenticate(username=username,password=password)  # 類型為<class 'django.contrib.auth.models.User'>

        # print(type(models.Customer.objects.get(name="趙凡")))
        # print(user,type(user))
        if user:

            login(request,user)  # 驗證成功之后登錄
            return  redirect('/crm')

    return render(request, "login.html")


def acc_logout(request):

    logout(request)  # 登出

    return redirect("/login")

  

必須登錄之后才能訪問頁面

from django.contrib.auth.decorators import login_required

@login_required  # 加上這個裝飾器就是限制必須登錄才能執行這個函數
def dashboard(request):
    print(request.user)

    return render(request, "crm1/dashboard.html")

  

如果加了@login_required,頁面跳轉會有問題,解決方法如下

在setting里追加一下內容/login/跟URL是一致的

LOGIN_URL = "/login/"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM