Auth模块

Posted xujinjin18

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Auth模块相关的知识,希望对你有一定的参考价值。

一:Auth模块简介

二:Auth模块常用方法

三:扩展默认的auth_user表

 

一:Auth模块简介

Auth模块是Django自带的用户认证模块:

我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能

Django内置了强大的用户认证系统--auth,它默认使用 auth_user 表来存储用户数据。

链接数据库后有自带的auth_user

 

二:Auth模块常用方法

技术分享图片
from django.contrib import auth
from django.contrib.auth.decorators import login_required
def auth_test(request):
    if request.method==POST:
        name=request.POST.get(name)
        pwd=request.POST.get(pwd)
        #做认证
        user=auth.authenticate(request,username=name,password=pwd)
        # user=models.User.objece.filter(username=name,password=pwd).first()
        if user:
            # 做登录
            auth.login(request,user)
            return HttpResponse(登录成功)
        else:
            return HttpResponse(登录失败)

    return render(request,index.html)


def auth_test2(request):
    # print(request.user.username)
    # print(request.user.password)
    # print(type(request.user))
    print(request.user)


    return render(request,auth_test.html)

def auth_logout(request):
    auth.logout(request)
    return HttpResponse(注销成功)
@login_required
def auth_createuser(request):
    # UserInfo.objects.create()
    # user1=UserInfo.objects.create_superuser(username=‘lqz1‘,password=‘lqz12345‘,email=‘[email protected]‘)
    # user2=UserInfo.objects.create_user(username=‘lqz2‘,password=‘lqz12345‘,email=‘[email protected]‘)
    # user = auth.authenticate(request, username=‘lqz1‘, password=‘lqz12345‘)
    # if user:
    #     print(‘1111‘)
    # else:
    #     print(‘222‘)
    if request.user.is_authenticated():
        print(登录了,request.user)
    else:
        print(没有登录,request.user)

    # user=request.user
    # 校验密码
    # ret=user.check_password(‘lqz12345‘)
    # print(ret)
    # 设置密码
    # print(user)
    # !!!!!!一定要save
    # user.set_password(‘lqz11111‘)
    # user.save()

    return HttpResponse(注册成功)
views.py
技术分享图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{%  if request.user.is_authenticated %}

{% endif %}
</body>
</html>
auth_test.html
技术分享图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script src="/static/jquery-3.3.1.js"></script>
    <title>Title</title>
</head>
<body>
<form action="" method="post">
    {% csrf_token %}

    <p>用户名:<input type="text" name="name" id="name"></p>
    <p>密码:<input type="password" name="pwd"></p>
    <input type="submit">
</form>
<button id="ajax">ajax</button>

</body>
<script>
    $("#ajax").click(function () {
        $.ajax({
        url:‘‘,
        type:post,
        //data:{‘name‘:$("#name").val(),‘csrfmiddlewaretoken‘:$(‘[name="csrfmiddlewaretoken"]‘).val()},
        data:{name:$("#name").val(),csrfmiddlewaretoken:{{ csrf_token }}},
        success:function (data) {
            console.log(data)

        }

    })
    })

</script>

</html>
index.html
技术分享图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script src="/static/jquery-3.3.1.js"></script>
    <title>Title</title>
</head>
<body>
<form action="" method="post">

{#    {% csrf_token %}#}
    <p>用户名:<input type="text" name="name" id="name"></p>
    <input type="submit">
</form>
<button id="ajax">ajax</button>

</body>
<script>
    $("#ajax").click(function () {
        $.ajax({
        url:‘‘,
        type:post,
        //data:{‘name‘:$("#name").val(),‘csrfmiddlewaretoken‘:$(‘[name="csrfmiddlewaretoken"]‘).val()},
        data:{name:$("#name").val(),csrfmiddlewaretoken:{{ csrf_token }}},
        success:function (data) {
            console.log(data)

        }

    })
    })

</script>

</html>
index1.html

 

三:扩展默认的auth_user表

以上是关于Auth模块的主要内容,如果未能解决你的问题,请参考以下文章

名称空间模块auth的vuex重复名称空间auth /

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

关于nginx_auth_mysql认证模块

如何有条件地将 C 代码片段编译到我的 Perl 模块?

day76 auth模块 用户验证,

ORM中介模型 + auth模块