美文网首页Django
Django 用户认证(Auth)组件

Django 用户认证(Auth)组件

作者: Chris0Yang | 来源:发表于2021-06-11 16:07 被阅读0次

Django用户认证(Auth)组件一般用在用户的登录注册上,用于判断当前的用户是否合法,并跳转到登陆成功或失败页面。

参数:

username:用户名
password:密码
email:邮箱(create_superuser(): 方法要多加一个email邮箱参数)

Django用户认证(Auth)组件需要导入auth模块:

# 认证模块
from django.contrib import auth
# 对应数据库
from django.contrib.auth.models import User

返回值是用户对象

# Django的Auth模块
# 认证模块
from django.contrib import auth
def LogAuth(request):
    # 对应数据库
    from django.contrib.auth.models import User

    # 1)create(): 创建一个普通用户,密码是明文
    # User.objects.create(username="User01", password="123")
    # 2)create_user(): 创建一个普通用户,密码是密文
    # User.objects.create_user(username="User02", password="123")
    # 3)create_superuser(): 创建一个超级用户,密码是密文,要多传一个email邮箱参数
    User.objects.create_superuser(username="Administrator", password="123", email="Administrator@qq.com")

    return HttpResponse("OK")

创建用户对象的是三种方法:

image.png

参数:

  • request:用户对象

返回值:None

例子:

# Django的Auth_Login登录页面的模块
def Auth_Login(request):
    # 认证模块
    from django.contrib import auth
    if request.method == "GET":
        return render(request, "auth_login.html")
    else:
        username = request.POST.get("username")
        password = request.POST.get("password")

        # 1)使用内置模块的验证时候,连接数据库查询内置的auth_user表
        user_obj = auth.authenticate(username=username, password=password)
        # 2)也可以在models模块表里,创建用户信息
        # models.User.objects.filter(username=username, password=password)

        print(user_obj)  # 返回是 None
        # print(user_obj.username)    # 返回是 string 类型

        if not user_obj:
            return redirect("/auth_login/")
        else:
            auth.login(request, user_obj)   # 作用是返回客户端cookie值,并且在session表中记录session的值
            path = request.GET("next") or "/index/"
            print(path)
            return redirect(path)

登录退出

注销用户使用logout()方法,需要清空session信息,将request赋值为匿名用户。
使用前导入:

from django.contrib import auth

参数:

  • request:用户对象
    返回值:None

例子:

# 登录退出
def Auth_Logout(request):
    from django.contrib import auth
    test = auth.login(request)
    print(test)
    return redirect("/auth_login/")

设置装饰器登录

设置装饰器,给需要登录成功后 才能访问的页面统一加装饰器

例子:

# 使用前要导入
from django.contrib.auth.decorators import login_required
@login_required()
def Auth_Index(request):
    return HttpResponse("index")

相关文章

  • Django 用户认证(Auth)组件

    Django用户认证(Auth)组件一般用在用户的登录注册上,用于判断当前的用户是否合法,并跳转到登陆成功或失败页...

  • Django--快速实现用户登录

    我们在系统开发时都会遇到用户登录的需求,使用Django 用户认证(Auth)组件可以帮助我们判断当前的用户是否合...

  • 2018-06-19 Django权限系统auth模块详解

    Django权限系统auth模块详解 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用...

  • djano笔记(八)认证

    1.用户认证 认证需要用到auth模块 使用django自带的User模型 在django shell里先创建用户...

  • Django权限系统auth模块详解

    认证系统auth auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理。au...

  • 19_Auth模块

    Auth模块 一、Auth模块是什么? Auth模块是Django自带的用户认证模块,可以快速的实现,登录,注销,...

  • django中级 --- 用户认证

    说明 django通过提供User、auth方法实现用户登录认证,权限管理等功能 一:用户认证 用户登录,判断用户...

  • Django Auth认证模块

    Django Auth认证模块

  • Django学习笔记--Auth模块的使用

    1.Auth模块介绍 1.1 Auth模块是Django自带的用户认证模块,用于处理用户账户、群组、许可和基于c...

  • 十七 Django-用户模块

    一、概要 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理。auth可以...

网友评论

    本文标题:Django 用户认证(Auth)组件

    本文链接:https://www.haomeiwen.com/subject/zrgmeltx.html