前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Django的电子商务网站开发(连载18)

基于Django的电子商务网站开发(连载18)

作者头像
顾翔
发布2019-12-11 15:47:13
4750
发布2019-12-11 15:47:13
举报

3.3.4 用户登录密码修改

系统为用户提供用户登录密码的修改。根据需求定义,修改用户密码的时候,必须提供旧密码、新密码和新密码的确认,并且新密码不能与旧密码相同。如果旧密码不正确、新密码与旧密码相同或者新密码和新密码的确认信息不一致,系统应该给出相应的提示信息。

1. urls.py

...url(r'^change_password/$', views.change_password),...

2. views. py

...# 修改用户密码def change_password(request): util = Util() username = util.check_user(request) if username=="": uf = LoginForm() return render(request,"index.html",{'uf':uf,"error":"请登录后再进入"}) else: count = util.cookies_count(request) #获得当前登录用户的用户信息 user_info = get_object_or_404(User,username=username) #如果是提交表单,获取表单信息,并且进行表单信息验证 if request.method == "POST": #获取旧密码 oldpassword=(request.POST.get("oldpassword", "")).strip() #获取新密码 newpassword=(request.POST.get("newpassword", "")).strip() #获取新密码的确认密码 checkpassword=(request.POST.get("checkpassword", "")).strip() #如果旧密码不正确,报错误信息,不允许修改 if oldpassword !=user_info.password: return render(request,"change_password.html",{"user": username,"error":"旧密码不正确","count":count}) #如果新密码与旧密码相同,报错误信息,不允许修改 elif newpassword ==oldpassword: return render(request,"change_password.html",{"user": username,"error":"新密码不能与旧密码相同","count":count}) #如果新密码与新密码的确认密码不匹配,报错误信息,不允许修改 elif newpassword != checkpassword: return render(request,"change_password.html",{"user": username,"error":"确认密码与新密码不匹配","count":count}) else: #否则修改成功 User.objects.filter(username=username).update(password=newpassword) return render(request,"change_password.html",{"user": username,"error":"密码修改成功","count":count}) #如果不是提交表单,显示修改密码页面 else: return render(request,"change_password.html",{"user": username,"count":count})...

(1)首先确认当前用户是否为登录用户。

(2)然后判断是否为表单提交状态。如果不是显示修改密码页面,否则获取旧密码、新密码和新密码确认码。

(3)最后作如下三项判断操作。

① 旧密码是否正确。

② 新密码与旧密码是否不相同。

③ 新密码与新密码的确认码是否相同。

(4)如果不满足需求,跳转到change_password.html页面中显示错误信息,否则通过代码User.objects.filter(username=username).update(password=newpassword)保存新密码。

(5)返回change_password.html显示密码修改正确的信息。

3. 模板

change_password.html

{% extends "base.html" %}{% block content %} <li><a href="/view_chart/">查看购物车<font color="#FF0000">{{ count }}</font></a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a href="/user_info/">{{user}}</a></li> <li><a href="/logout/">退出</a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> <div class="container theme-showcase" role="main"> <div> <div id="navbar" class="navbar-collapse collapse"> </div><!--/.navbar-collapse --> </div> <div> <div> <form action="/change_password/" method="post" enctype="multipart/form-data"> <p style="color:red">{{error}}</p><br> 旧密码:<input name="oldpassword" type="password" required><br> 新密码:<input name="newpassword" type="password" required><br> 确认密码:<input name="checkpassword" type="password" required><br> <input type="submit" value="修改"> </form> </div> </div> {% endblock %}

用户密码修改页面如图3-6所示。

图3-6 用户密码修改页面

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试培训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.3.4 用户登录密码修改
    • 1. urls.py
      • 2. views. py
        • 3. 模板
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档