zoukankan      html  css  js  c++  java
  • python测试开发django-27.表单提交之post修改密码

    前言

    跟账号相关的功能一般是注册,登录,修改密码,密码找回功能,前面实现了登录和注册功能,本篇讲下修改密码功能实现

    修改密码html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>注册页面</title>
    </head>
    <body>
    <h1>新用户注册!</h1>
    <form action="" method="post">
        {% csrf_token %}
          <p>
            用户名:<input type="text" id="id_username" name="username", required="required">*
          </p>
          <p>
             密码:<input type="password" id="id_psw" name="password", required="required">*
        </p>
       <p>
             新密码:<input type="password" id="id_new" name="new", required="required">*
        </p>
        <p>{{ msg }}</p>
        <p>
              <input type="submit" value="确定">
        </p>
    
    
    </form>
    
    </body>
    </html>

    views和urls

    from django.shortcuts import render
    from django.contrib.auth.hashers import make_password, check_password
    
    # Create your views here.
    
    def reset_psw(request):
        '''修改密码'''
        res = ""
        if request.method == "GET":
            return render(request, 'reset_psw.html', {'msg': res})
    
        if request.method == "POST":
            username = request.POST.get('username')
            psw = request.POST.get('password')
            new_psw = request.POST.get('new')
    
            if psw == new_psw:
                res = "新密码和旧密码不能重复"
                return render(request, 'reset_psw.html', {'msg': res})
            else:
                # 先查询数据库是否有此用户名
                user_lst = User.objects.filter(user_name=username)
                if not user_lst:
                    # 如果没这个用户
                    res = "用户未注册:%s" % username
                    return render(request, 'reset_psw.html', {'msg': res})
    
                else:
                    # 如果注册过,判断密码对不对
                    ret = User.objects.filter(user_name=username).first()
                    # 校验密码
                    is_psw_true = check_password(psw, ret.psw)
                    if is_psw_true:
                        user = User()
                        user.psw = make_password(new_psw)
                        user.save()
                        res = "密码修改成功!"
                    else:
                        res = "密码错误!"
                    return render(request, 'reset_psw.html', {'msg': res})
    
    

    urls.py访问地址

    from django.conf.urls import url
    from hello import views
    
    urlpatterns = [
        # 新增用户
        url(r'^register/', views.register),
        url(r'^login/', views.login),
        url(r'^reset/', views.reset_psw),
    ]

    实现效果如下

  • 相关阅读:
    Maven笔记之面试题合集
    Maven笔记之核心概念及常用命令
    UML中的关系
    RocketMq核心概念
    linux安装rocketMq(包括安装maven,JDK)
    linux安装JDK,配置环境变量
    ASP.NET Core读取appsettings.json配置文件信息
    ASP.NET Core获取客户端IP地址
    ASP.NET Core根据环境切换NLog配置
    ASP.NET Core使用NLog记录日志
  • 原文地址:https://www.cnblogs.com/mashuqi/p/10998359.html
Copyright © 2011-2022 走看看