微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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())

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐