Django内置模块auth实现认证功能代码

auth 模块的知识点,

一,用户认证

1,创建超级用户(此步之所以这么做,是用于将用户名密码使用命令写入auth_user表中

(此表不能手工写,因为password是加密后的字串))

python manage.py createsuperuser

输入用户名 xiaohei

输入邮箱。。。。

输入密码xiaohei1234

去数据库里就能看到auth插件,auth_user表对应的信息了

二,views.py中的核心代码

2.1导入模块

from django.contrib import auth

2.2 验证用户名和密码(如果验证成功返回的是一个user对象,如果验证失败则得到一个匿名用户,此用户所有属性是null)

user=auth.authenticate(username=username1,password=pwd)

2.3 将以上通过验证的user用户ID保存在session中,供auth中间件使用

auth.login(request,user)

2.4

后面会用于中间件,将user封装到request.user的属性中

‘django.contrib.auth.middleware.AuthenticationMiddleware‘,   ------中间件

以下第二步骤代码归纳如下:

from django.contrib import auth
def login(request):
    if request.method==‘POST‘:
        username1=request.POST.get(‘username‘)
        pwd=request.POST.get(‘password‘)
        # 如何判断用户名和密码呢
        # 以下是使用auth模块,去数据库里查询用户信息,验证是否存在
        user=auth.authenticate(username=username1,password=pwd)
        # 以下语句,其实还是将以上获得认证的用户ID保存在SESSION中,#用于后面每个页面根据此SESSION里的ID,获取用户信息验证,并给auth中间件使用
        auth.login(request,user)
        # 用于以后在调用每个视图函数前,auth中间件会根据每次访问视图前请求所带的SEESION里面的ID,去数据库找用户对像,并将对象保存在request.user属性中
        # 中间件执行完后,再执行视图函数
        if user:
            return redirect(‘/index/‘)
        else:
            return redirect(‘/login/‘)
    return render(request,‘login.html‘)

三,需要进行验证页面的验证(使用auth模块里的装饰器login_required)

from django.contrib.auth.decorators import login_required
# 以上导入的就是一个装饰器,用于验证(我们需要用户登录后,才能访问,否则就跳转到另外的页面)
# 这个另外的页面就默认的是/accounts/login/ 我们也也以自定义要跳转的地方,在settins.py中LOGIN_URL

# 例如以下页面需要登录成功才能访问
@login_required
def index(request):
    print(request.user.username)
    print(‘====‘*12)
    return render(request,‘index.html‘)

四,如果没有登录则跳转到另外的页面,这个页面是可以设置的,

# 这个另外的页面就默认的是/accounts/login/ 我们也也以自定义要跳转的地方,在settins.py中LOGIN_URL

settings.py文件中写以下代码,指定没有登录跳转到登录页面
LOGIN_URL=‘/login/‘

五,用户注销

以下是views.py注销代码

from django.contrib.auth.decorators import login_required
# 以上导入的就是一个装饰器,用于验证(我们需要用户登录后,才能访问,否则就跳转到另外的页面)
# 这个另外的页面就默认的是/accounts/login/ 我们也也以自定义要跳转的地方,在settins.py中LOGIN_URL

# 注销,将session数据都删除,并且coolies也失效,(即用户退出登录,并不销户清除数据库里user记录哦。。)
def logout(request):
    auth.logout(request)
    return redirect(‘/login‘)

六,注册(创建用户)

# 创建用户,即注册
def register(request):
    from django.contrib.auth.models import User
    User.objects.create(username=‘alex‘,password=‘alex1234‘)
    return HttpResponse(‘o98k‘)

调用register视图函数后,即创建成功后,数据库里的auth_user表就有对应数据了,

原文地址:https://www.cnblogs.com/2mei/p/9219194.html

时间: 2024-08-30 09:57:14

Django内置模块auth实现认证功能代码的相关文章

django 内置模块auth的login与authenticate功能简单测试

index页加装饰器@login_required需要登陆才能查看user= authenticate(username=username,password=password)返回user对象若返回user对象,登陆login(request,user),之后可以访问index from django.shortcuts import render,HttpResponse,redirect,HttpResponseRedirect # Create your views here. from

Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块

目录 使用Django对中间件的调用思想完成自己的功能 功能要求 importlib模块介绍 功能的实现 csrf中间件详细介绍 跨站请求伪造 Django csrf中间件 form表单 ajax csrf相关装饰器 在CBV上加csrf装饰器 Django settings源码剖析及模仿使用 Django settings源码剖析 查看内部配置文件 模仿使用 Auth模块 auth简介 auth模块常用方法 创建用户 校验用户名和密码 保存用户登录状态 判断当前用户是否登录 校验原密码 修改密

django的auth认证,is_authenticate 和装饰器的2个方法,注销的功能,

在django中创建表,会自动创建一些django自带的表,先了解用户认证, 认证登录  先要引用  , from django.contrib import auth 有很多方法, 网站先有登录和认证, authenticate(),提供用户认证,验证用户名和密码是否正确,一般需要username ,password两个关键字参数, 认证信息有效,返回有一个User对象.authrenticate()会在User对象上设置一个属性标识,认证了该用户, 创建一个Book表,然后生成数据库 fro

python3开发进阶-Django框架的自带认证功能auth模块和User对象的基本操作

阅读目录 auth模块 User对象 认证进阶 一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate()    提供了用户认证,即验证用户名以及密码是否正确,一般需要username  password两个关键字参数 如果认证信息有效,会返回一个  User  对象.authenticate()会在User 对象上设置一个属性来标识后端已经认证了该用户,且该信息

Django 自带认证功能auth模块和User对象的基本操作

一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate()    提供了用户认证,即验证用户名以及密码是否正确,一般需要username,password两个关键字参数. 如果认证信息有效,会返回一个  User  对象.authenticate()会在User 对象上设置一个属性来标识后端已经认证了该用户,且该信息在后续的登录过程中是需要的. user = au

『Django』第N+1节 Django自带的认证系统 - auth

个人网站: lipeiguan.top 以后会慢慢转移到个人网站, 欢迎大家收藏^ . ^ 写在前面 我们在开发一个网站的时候, 经常需要实现网站的用户系统. 这个时候我们需要实现用户注册.用户登录.用户认证.注销.修改密码等一系列功能. 如果我们都是自己实现的话, 不是不可以, 只是有些浪费时间. 而Django则内置了一个用户认证系统 --> auth, 它默认使用 auth_user表来储存用户的数据. 那么接下来就来了解一下这个强大的用户认证系统. auth模块 导入auth 要使用这个

Django之cookie,session,认证系统auth

COOKIE 与 SESSION 概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地:当浏览器再次访问时,浏览器会自动带上cookie,这样服务器就能通过cookie的内容来判断这个是“谁”了. cookie虽然在一定程度上解决了“保持状态”的需求,但是由于cookie本身最大支持4096字节,以及cookie本身保存在客户

Django之auth模块用户认证模块

一.Auth模块 1)auth模块是什么.登录后台使用的账号密码,则就是使用的auth模块创建的表 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统. 此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点.它内置了强大的用户认证系统--auth, 它默认使用 auth_user 表来存储用户数据. 2)auth模块的功能

Django进阶-Auth认证模块

转自:https://www.cnblogs.com/liwenzhou/p/9030211.html Django自带的用户认证系统 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点.它内置了强大的用户认证系统--auth,它默认使用 auth_user 表来存储用户数据. auth模块 authenticate(