Django的登录模块

Django的登录模块

导入

from django.contrib.auth.decorators import login_required   #登录验证装饰器
from django.contrib.auth.models import User
from django.contrib import auth  #登录 改密 注销一些的相关操作

装饰器

@login_required(login_url='/login/')  #装饰器  如果未登录 直接跳转 /login/
def index(request):
    return render(request, "index.html", {'msg': '又是美好的一天'})

注册

def register(request):
    if request.method == 'GET':
        return render(request, 'register.html')
    else:
        username = request.POST.get('username')    #获取前端传来的帐号和密码
        pwd = request.POST.get('pwd')

        # User.objects.create_superuser(username=username, password=pwd, email='111@qq.com')
        User.objects.create_user(username=username, password=pwd)  #创建一个用户
    return HttpResponse('ok')

修改密码

@login_required(login_url='/login/')  #因为是登录之后才能改密码,所以需要登录之后改密码
def modify(request):
    if request.method == 'GET':
        return render(request, 'modify.html')
    else:
        old_pwd = request.POST.get('oldpwd')
        new_pwd = request.POST.get('newpwd')

        res = request.user.check_password(old_pwd)  #检测老密码的加密结果
        if res:
            request.user.set_password(new_pwd)  #设置新的密码
            request.user.save() #一定记得保存

            return HttpResponse('ok')
        else:
            return render(request, 'modify.html')

登录

def login(request):
    if request.method == 'GET':
        return render(request, 'login.html', {'meiri': 'xixi'})
    else:
        # 获取用户名和密码
        username = request.POST.get('username')
        pwd = request.POST.get('pwd')
        print(username, pwd)

        myuser = auth.authenticate(request, username=username, password=pwd)  #登录帐号 成功返回帐号,失败返回None
        if myuser is not None:
            my = auth.login(request, myuser)
            return render(request, 'index.html')
        else:
            return render(request, "login.html", {'res': '登录失败!'})

转载于:https://www.cnblogs.com/bladecheng/p/11372260.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值