修改密码弹出框搭建

前端代码搭建

主要利用的是bootstrap3中js插件里的模态框版块

<li><a href="" data-toggle="modal" data-target=".bs-example-modal-lg">修改密码</a></li>

<div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel">
                            <div class="modal-dialog modal-lg" role="document">
                                <div class="modal-content">
                                    <div class="row">
                                        <div class="col-md-8 col-md-offset-2">
                                            <h3 class="text-center">修改密码</h3>
                                            <div class="form-group">
                                                <label for="">用户名:</label>
                                                <input type="text" disabled value="{{ request.user.username }}" class="form-control" id="id_username">
                                            </div>
                                            <div class="form-group">
                                                <label for="">原密码:</label>
                                                <input type="text" id="old_password" class="form-control">
                                            </div>
                                            <div class="form-group">
                                                <label for="">新密码:</label>
                                                <input type="password" id="id_password" class="form-control">
                                            </div>
                                            <div class="form-group">
                                                <label for="">新密码:</label>
                                                <input type="text" id="confirm_password" class="form-control">
                                            </div>
                                            <span style="color:red;" id="error"></span>
                                            <div class="modal-footer">
                                                <button type="button" class="btn btn-primary" data-dismiss="modal" >取消</button>
                                                <button type="button" class="btn btn-primary" id="commit">修改</button>
                                            </div>
                                        </div>
                                    </div>
                                    <br>
                                </div>
                            </div>
                        </div>

<script>
    $('#commit').click(function (){
        $.ajax({
            type:'post',
            url:'/set_password/',
            data:{
                'username':$('#id_username').val(),
                'old_password':$('#old_password').val(),
                'password':$('#id_password').val(),
                'confirm_password':$('#confirm_password').val(),
                'csrfmiddlewaretoken':'{{ csrf_token }}',
            },
            success:function (args){
                if (args.code==1000){
                    window.location.reload();
                }else {
                    $('#error').text(args.msg)
                }
            }
        })
    })
</script>

后端接收修改密码数据并提供错误提示

注意修改密码的视图函数必须是登录用户才能使用,所以需要一个@login_required装饰器

@login_required
def set_password(request):
    # 1.判断是否为ajax请求
    if request.method == 'POST':
        back_dic = {'code':1000,'msg':''}
        # 2.获取用户修改密码提交的数据
        username = request.POST.get('username')
        old_password = request.POST.get('old_password')
        password = request.POST.get('password')
        confirm_password = request.POST.get('confirm_password')
        # 3.对比原密码是否正确
        is_right = request.user.check_password(old_password)
        if is_right:
            # 4.判断两次密码是否一致
            if password == confirm_password:
                # 5.一致则修改密码
                request.user.set_password(password)
                request.user.save()
            else:
                back_dic['code'] = 1001
                back_dic['msg'] = '两次密码不一致'
        else:
            back_dic['code'] = 1002
            back_dic['msg'] = '原密码不正确'
        return JsonResponse(back_dic)

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:修改密码弹出框搭建 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • git的介绍和使用

    git介绍 什么是git git是一种版本控制器 – 控制的对象是开发的项目代码 什么是版本控制器 完成 协同开发 项目,帮助程序员整合代码 i)帮助开发者合并开发的代码 ii)如果出现冲突代码的合并,会提示后提交合并代码的开发者,让其解决冲突 软件:SVN 、 GIT(都是同一个人的个人项目) github、gitee(两个采用git版本控制器管理代码的公…

    2023年4月2日
    00
  • 权限类与频率类

    权限类 主要用途:用户登录了,某个接口可能只有超级管理员才能访问,普通用户不能访问 案列:出版社的所有接口,必须登录,而且是超级管理员才能访问 分析步骤 第一步:写一个类,继承BasePermission 第二步:重写has_permission方法 第三步:在方法校验用户时候有权限(request.user就是当前登录用户) 第四步:如果有权限,返回Tru…

    2023年4月2日
    00
  • JWT的介绍和使用

    JWT的含义 Json web token(JWT),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519),该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(sso)场景,JWT的声明一般被用来在身份提供者和服务者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其他业务逻辑所必须的声…

    2023年4月2日
    00
  • 小程序子页面向父页面传值、腾讯云对象存储上传图片

    1. 页面传值 1.1 父页面向子页面传值 父页面: /pages/xx/xxx?id=1 子页面 // option就可以接收到父页面传来的值 onLoad:function(option){ } 1.2 子父页面 子页面 var pages = getCurrentPages() var prevPage = pages[pages.length-2] …

    Python开发 2023年4月2日
    00
  • 数据库配置限)不用root用户操作数据库了(为数据库创建用户,并赋予权限)

    步骤 1.为路飞项目创建数据库 在mysql终端输入以下代码: create database luffy charset=utf8; 2.创建数据库用户 create user ‘username’@’host’ identified by ‘password’; 其中username为自定义的用户名;host为登录域名,host为’%’时表示为 任意IP…

    Python开发 2023年4月2日
    00
  • drf之请求与响应、drf之视图组件

    drf之请求与响应 Request from rest_framework.request import Request def __init__(self, request, parsers=None, authenticators=None, negotiator=None, parser_context=None): # 二次封装request,将原生…

    2023年4月2日
    00
  • 后台response和异常处理封装

    我们自己封装的一些东西,往往放在一个utils文件夹内,以后也方便管理和导入 后台response封装 # 自己封装的Response对象 from rest_framework.response import Response class APIResponse(Response): def __init__(self,code=1,msg=’成功’,re…

    2023年4月2日
    00
  • 源码分析之序列化器的many关键字

    在序列多个数据时,我们需要指定一个关键字many=True 这是为什么呢? 其实是,当序列化器产生对象时,传入参数many和不传入会生成两个不同的对象!! 这是怎么实现的呢?? 1.类的对象生成–先调用类的__new__方法生成一个空对象2.对象 = 类名(name=‘lz’)–会触发类的__init__方法,产生一个有属性的对象3.类的__new__方…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部