Django 自带的用户认证系统auth

auth相关模块

# auth主认证模块
from django.contrib.auth.models import auth
#对应数据库,可以创建添加记录  
from django.contrib.auth.models import User

匿名用户
username 为 None
….


登陆

# if有这个用户返回user对象,否则返回None
# 先验证是否有该用户
user = auth.authenticate(username=username, password=pwd)
if user:
    auth.login(request, user)  #  登陆  
    '''request.user: 当前登陆对象全局,视图模版中都可以使用'''

判断是否登陆成功

if request.user.is_authenticated:  # 判断用户是否通过认证
# request.user: 可以在模版中直接调用
    print('登陆成功')

注册

from django.contrib.auth.models import User

def reg(request):
    if request.method == 'POST':
        user = request.POST.get('name')
        pwd = request.POST.get('pwd')
        # 插入信息
        user_info = User.objects.create_user(username=user, password=pwd)
'''可以创建普通用户和超级用户create_user'''

注销

清空session

def logout(request):
    auth.logout(request) # 注销
    return redirect('/login/') # 注销并返回登陆页面

装饰器校验

验证装饰器,看哪些页面需要登陆才能访问,如果没有登陆跳转设置的页面去

setting.py

LOGIN_URL = '/login/'  # 用于auth模块 装饰器校验返回页面

视图

from django.contrib.auth.decorators import login_required

@login_required()
def test(request): # 需要验证的页面
    ...

修改密码

!!设置完必须保存才生效

user.set_password(password='')
user.save()

猜你喜欢

转载自blog.csdn.net/weixin_42329277/article/details/81906395