python测试开发django(25)--表单提交之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" name="username",required="required">*
    </p>
    <p>
        密码:<input type="password" name="password",required="required">*
    </p>
    <p>
        新密码:<input type="password" name="new",required="required">*
    </p>
    <p>
        {{msg}}
    </p>
    <p>
        <input type="submit" value="确定">
    </p>
</form>
</body>
</html>

 views和urls

#coding:utf-8

from django.shortcuts import render
from django.http import HttpResponse
from tb.models import Users
from django.contrib.auth.hashers import make_password,check_password

def reset_pwd(request):
    rs=""
    if request.method=="GET":
        return render(request,'chpwd.html',{'msg':rs})
    if request.method=="POST":
        username=request.POST.get('username')
        pwd=request.POST.get("password")
        new_pwd=request.POST.get("new")
        if pwd==new_pwd:
            rs="新密码和旧密码不能重复"
            return render(request,'chpwd.html',{'msg':rs})
        else:
            #先查询数据库是否有此用户名
            user_lst=Users.objects.filter(user_name=username).first()
            if not user_lst:
                #没这个用户
                rs="{}用户未注册".format(username)
                return render(request,'chpwd.html',{'msg':rs})
            else:
                #如果注册过,判断密码对不对
                is_pwd=check_password(pwd,user_lst.pwd)
                if is_pwd:
                    user=Users.objects.get(user_name=username)
                    user.pwd=make_password(new_pwd)
                    user.save()
                    rs="密码修改成功!"
                else:
                    rs="密码错误!"
                return render(request,'chpwd.html',{'msg':rs})

 urls.py访问地址

# coding:utf-8

from django.conf.urls import url
from tb import views

urlpatterns = [
    # 新增用户
    url(r'^register/', views.register),
    url(r'^login/', views.login),
    url('^chpwd/',views.reset_pwd),
]

 实现效果如下

 

原文地址:https://www.cnblogs.com/canglongdao/p/14113323.html