AUTH 使用登录验证

from django.db import models
from django.contrib.auth.models import User, AbstractUser
class UserInfo(AbstractUser):  #AUTH_USER_MODEL = 'app01.UserInfo' 去数据库中看
    phone = models.CharField(max_length=11)
    addr = models.CharField(max_length=128)

***************************************************************************************************************

from django.shortcuts import render, redirect, HttpResponse

# Create your views here.

from django.contrib import auth
from django.contrib.auth.decorators import login_required

from app01 import models

def login(request):
    if request.method == "POST":
        username = request.POST.get("username")
        pwd = request.POST.get("password")
        # 如何判断用户名和密码对不对
        user = auth.authenticate(username=username, password=pwd)
        if user:
            ret = user.is_authenticated()
            print(ret)
            print("-" * 120)

            # 将登录的用户封装到request.user
            auth.login(request, user)
            return redirect("/index/")
    return render(request, "login.html")


@login_required  #注意要在setting 里加 LOGIN_URL = "/login/"
def index(request):
    print(request.user.username)
    print("=" * 120)
    ret = request.user.is_authenticated()
    print(ret)
    re = request.user
    return render(request, "index.html",{"user":re})

def logout(request):
    auth.logout(request)
    return redirect("/login/")

def register(request):

    user_obj = models.UserInfo.objects.create_user(username="alex5", password="alexdsb")
    # 校验密码是否正确
    ret = user_obj.check_password("alex1234")
    print(ret)
    # 修改密码
    user_obj.set_password("alex3714")
    user_obj.save()
    return HttpResponse("o98k")

猜你喜欢

转载自blog.csdn.net/weixin_42506747/article/details/81915879