前言
跟账号相关的功能一般是注册,登录,修改密码,密码找回功能,前面实现了登录和注册功能,本篇讲下修改密码功能实现
修改密码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), ]
实现效果如下