Django auth用户验证

前端之家收集整理的这篇文章主要介绍了Django auth用户验证前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如果要使用Django自带的auth认证,那么必须要使用Django自己创建Usermodels

导入模块

from django.contrib.auth.models import User

注意:auth.User中默认的字段只有username、password、email、first_name和last_name五个,一般网站的应用是不够,那么如何增加字段?

解决办法是:

    在models建立一个新的Model,然后一对一地连接在一起,假设我们要穿件一个用户类Profile,并且要增加身高、性别、以及年龄3个字段。就可以在models.py中定义。

from django.db import models
from django.contrib.auth.models import User


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    height = models.PositiveIntegerField(default=160)
    male = models.BooleanField(default=False)
    age = models.SmallIntegerField()

获取Profile信息

user = User.objects.filter(username=username)
userInfo=models.Profile.objects.get(user=user)


常用auth函数

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

登陆验证案列:

def login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(username=username, password=password)
        if user:
            if user.is_active:
                messages.add_message(request, messages.SUCCESS, '登陆成功')
            else:
                messages.add_message(request, messages.WARNING, '账号还没激活')
        else:
            messages.add_message(request, messages.ERROR, '用户密码错误')
    return render(request, 'login.html', locals())

猜你在找的Django相关文章