Django Auth认证模块

Author模块介绍

Django作为一个完美主义者的终极框架,它内置了强大的用户认证系统--auth,执行数据库迁移的那两条命令时,即使我们没有建表,它默认帮我们创建auth_user 表来存储用户数据。

创建超级用户,我们可以在pycharm中使用导航栏中的Tools里的run manage.py Task 中输入createsuperuser

注册相关:

create_user()

auth 提供的一个创建新用户的方法,需要提供必要参数(username、password)等。

用法:

from django.contrib.auth.models import User
user = User.objects.create_user(username=‘用户名‘,password=‘密码‘,...)

create_superuser()

auth 提供的一个创建新的超级用户的方法,需要提供必要参数(username、password、email)等。

用法:

from django.contrib.auth.models import User
user = User.objects.create_superuser(username=‘用户名‘,password=‘密码‘,email=‘邮箱‘,...)

示例:

from django.contrib import auth
from django.contrib.auth.models import User
def register(request):
    if request.method ==‘POST‘:
        username = request.POST.get(‘username‘)
        password = request.POST.get(‘password‘)
        # User.objects.create(username=username,password=password) # 这种方式不能使用,因为密码是明文的
        # User.objects.create_user(username=username,password=password) #创建普通用户
        User.objects.create_superuser(username=username,password=password,email=‘[email protected]‘) #创建超级用户
    return render(request,‘register.html‘)

views.py

登录相关

authenticate()

提供了用户认证功能,即验证用户名以及密码是否正确,一般需要username 、password两个关键字参数

登录成功返回的是用户对象,错误返回None。

user = auth.authenticate(request,username=username,password=password)

login()

保存用户登录状态,会自动在后端为该用户生成相关session数据

#若用户登录成功,拿到user对象
if user:
    #保存用户登录状态
    auth.login(request,user)
    ‘‘‘
    只要执行了这一句话,之后在任意可以获取到request对象的地方
    都可以通过request.user获取到当前登录的用户对象
    ‘‘‘

is_authenticated()

用来判断当前请求是否通过了认证,返回布尔值

request.user.is_authenticated()

校验用户是否登录装饰器 @login_required

方式一:

@login_required(login_url=‘/login‘)  #加参数 若未登录就跳转到指定的登录页面
def xxx(request):
    return HttpResponse(‘xxx页面‘)   

方式二:

views.py

@login_required
def xxx(request):
    return HttpResponse(‘xxx页面‘)

在settings.py中加入以下代码

LOGIN_URL = ‘/login/‘

注意:若两种方法都有,则先执行方式一的

登录综合示例:

def login(request):
    if request.method ==‘POST‘:
        username = request.POST.get(‘username‘)
        password = request.POST.get(‘password‘)
        user = auth.authenticate(request,username=username,password=password)  #返回值user是一个对象
        # print(user)
        # print(user.username)
        # print(user.password)
        ‘‘‘
        用户名密码正确返回的是用户对象
        错误返回None
        ‘‘‘
        if user:
            #保存用户登录状态
            auth.login(request,user)
            ‘‘‘
            只要执行了这一句话,之后在任意可以获取到request对象的地方
            都可以通过request.user获取到当前登录的用户对象
            ‘‘‘
            return HttpResponse(‘登录成功‘)
    return render(request,‘login.html‘)

def get_user(request):
    print(request.user)
    ‘‘‘
    用户登录成功之后,request.user拿到的就是用户对象 user
    没有登录,获取到的是匿名用户 AnonymousUser
    ‘‘‘
    print(request.user.is_authenticated())  #返回的是布尔值,确认用户是否登录
    return HttpResponse(‘get_user‘)

# 校验用户是否登录装饰器
from django.contrib.auth.decorators import login_required

@login_required(login_url=‘/login‘)  #加参数 跳转到指定的登录页面
# @login_required
def xxx(request):
    return HttpResponse(‘xxx页面‘)

views.pys

原文地址:https://www.cnblogs.com/baohanblog/p/12194235.html

时间: 2024-07-31 03:07:05

Django Auth认证模块的相关文章

Django之中间件及Auth认证模块

CBV加装饰器 # 写一个装饰器验证session def login_auth(func): def inner(request,*args,**kwargs): if request.session.get('is_login'): return func(request,*args,**kwargs) else: return redirect('/login/') return inner # 写一个类作为网站主页,必须登陆才能访问 # 给里面的get,post方法加装饰器 class

Python Django 生命周期 中间键 csrf跨站请求伪造 auth认证模块 settings功能插拔式源码

一 django 生命周期 二 django中间键 1.什么是中间键 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出.每个中间件组件都负责做一些特定的功能. 简单来说就相当于django门户,保安:它本质上就是一个自定义类,类中定义了几个方法. 请求的时候需要先经过中间件才能到达django后端(urls,views,templates,models): 响应走的时候也需要经过中间件才能到达w

Django框架之 auth认证模块

目录 一.Auth模块是什么 二.Auth模块的使用 2.1 User对象的属性 三.扩展auth_user表的字段 3.1 通过AbstractUser类来进行扩展 再次注意: 一.Auth模块是什么 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点.它内置了强大的用

Django--csrf跨站请求伪造、Auth认证模块

form表单中使用跨站请求伪造 { % csrf_token % } 会动态生成一个input框,内部的value是随机刷新的 如果不想校验csrf from django.views.decorators.csrf import csrf_exempt, csrf_protect 然后在不想装饰的函数的上面加上@csrf_exempt 如果只想校验单独一个的话就在那个函数的上面加上@csrf_protect 在CBV中添加csrf就是通过导入第三方模块 from django.utils.de

20 Auth认证模块

目录 一.Auth模块是什么 二.auth模块创建超级用户 三.Auth 自定义登录页面 登录超级用户 四.auth模块 常用方法 4.1 如何创建超级用户 4.2 如何使用普通的登录页面校验用户存不存在 4.3 auth 保存用户登录状态 4.4 auth 的request.user 4.5 局部配置/全局配置 装饰器 4.6 利用装饰器实现用户密码修改 4.7 auth 如何注册新的用户 五.扩展 auth_user 表的字段 一.Auth模块是什么 Auth模块是Django自带的用户认证

Django进阶-Auth认证模块

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

Django框架进阶7 django请求生命周期流程图, django中间件, csrf跨站请求伪造, auth认证模块

django请求生命周期流程图 djang中间件 它是django的门户 只要是全局相关的功能你都应该考虑使用django中间件来帮你完成 全局用户身份校验 全局用户访问频率校验 用户访问黑名单 用户访问白名单 # 只要以后用django开发业务 设计到全局相关的功能 你就考虑用中间件 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.Sessio

auth认证模块

Django 自带的用户验证: 可以实现用户注册.用户登录.用户认证.注销.修改密码等功能: auth模块: from django.contrib import auth auth中的方法: 1).authenticate() 提供了用户认证功能,即验证用户名以及密码是否正确,一般需要username .password两个关键字参数. 如果认证成功(用户名和密码正确有效),便会返回一个 User 对象. authenticate()会在该 User 对象上设置一个属性来标识后端已经认证了该用

重新开发Jumpserver用户认证模块,调用独立认证接口(二)

一.urls.py # --*--coding:utf-8--*-- from django.conf.urls import patterns, url urlpatterns = patterns('myauth.login', url(r'^login/$', 'do_login', name='login'), url(r'^logout/$', 'do_logout', name='logout'), ) 二.myauth_backend.py Jms_Users 是继承Django的