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

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

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所示。

           

image.png

              3-6 用户密码修改页面


星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net


顾翔凡言:

      软件测试正在生病,而且病得不轻,自动化测试被要不吹得太火,要不一点都不会,自动化比不过开发、测试又找不到缺陷,丢了西瓜也捡不到芝麻。

目录
相关文章
|
3月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
94 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
7月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
202 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
|
安全 测试技术 Python
基于Django的电子商务网站开发(连载39)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
75 0
基于Django的电子商务网站开发(连载39)
|
存储 安全 前端开发
基于Django的电子商务网站开发(连载37)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
154 0
基于Django的电子商务网站开发(连载37)
|
测试技术 Python
基于Django的电子商务网站开发(连载36)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
96 0
基于Django的电子商务网站开发(连载36)
|
XML 测试技术 数据库
基于Django的电子商务网站开发(连载34)
基于Django的电子商务网站开发(连载34)
68 0
基于Django的电子商务网站开发(连载34)
|
XML 测试技术 数据格式
基于Django的电子商务网站开发(连载33)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
97 0
基于Django的电子商务网站开发(连载33)
|
SQL XML 前端开发
基于Django的电子商务网站开发(连载40)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
184 0
|
测试技术 Python
基于Django的电子商务网站开发(连载38)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
92 0
|
XML 测试技术 数据格式
基于Django的电子商务网站开发(连载35)
基于Django的电子商务网站开发(连载35)
107 0