首页 > 技术文章 > python Auth

zybyekai 2020-11-17 15:23 原文

from django.shortcuts import render,HttpResponse,redirect
from django.contrib import auth

def login(request):

    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

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

        if user_obj:
            auth.login(request,user_obj)
            return redirect('/home/')


    return render(request,'login.html')

from django.contrib.auth.decorators import login_required


@login_required(login_url='/login/')  # 用户必须登录以后才能查看当前页面
def home(request):

    # 判断当前用户是否登录
    if request.user.is_authenticated():
        print('%s已经登录了' %request.user)
    return HttpResponse('ok')

@login_required(login_url='/login/')
def set_password(request):
    if request.method == 'POST':
        old_password = request.POST.get('old_password')
        new_password = request.POST.get('new_password')
        confirm_password = request.POST.get('confirm_password')

        if new_password == confirm_password:
            # 校验密码
            is_right = request.user.check_password(old_password)

            if is_right:
                # 修改密码
                request.user.set_password(new_password)

                # 保存修改
                request.user.save()

    return render(request,'set_password.html')


# 注销
@login_required
def logou(request):

    auth.logout(request)

    return redirect('/login/')

# 注册
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_user(username=username,password=password)
        
        # 创建超级用户
        User.objects.create_superuser(username=username,password=password,email='541698220@qq.com')

    return render(request,'register.html')

推荐阅读