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),
]
实现效果如下

python测试开发django-27.表单提交之post修改密码的更多相关文章
- [转]django自定义表单提交
		原文网址:http://www.cnblogs.com/retop/p/4677148.html 注:本人使用的Django1.8.3版本进行测试 除了使用Django内置表单,有时往往我们需要自定义 ... 
- UI标签库专题三:JEECG智能开发平台 FormValidation(表单提交及验证标签)
		版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/28484209  自己定义弹出框提示 ... 
- python接口自动化17-multipart/form-data表单提交
		前言 multipart/form-data这种格式官方文档给的参考案例比较简单,实际情况中遇到会比较复杂,本篇讲解multipart/form-data的表单如何提交,非图片上传 禅道提交bug 1 ... 
- 表单提交对chrome记住密码的影响
		在处理注册.登录等含有用户名,密码的元素的表单时,chrome会主动的提示记住密码,然而这个功能在用户名的选择上真是耐人寻味,它总是寻找离password input控件最近的那一个文本框的内容,作为 ... 
- python测试开发django-72.删除表后如何重新生成表
		前言 在使用ORM建表的时候,由于需要对数据库表的重新设计,需要删除原表,并通过Django的ORM功能重新同步表. 删除表之后,发现用 makemigrations 和 migrate 无法生成新的 ... 
- python http  请求 响应 post表单提交
		1. 查看请求 响应情况 print(response.text) print(response.headers) print(response.request.body) print(respons ... 
- python运维开发(十九)----Django后台表单验证、session、cookie、model操作
		内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ... 
- 数据库开发-Django ORM的单表查询
		数据库开发-Django ORM的单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询集 1>.查询集相关概述 查询会返回结果的集,它是django.db.mod ... 
- Django初体验(一):自定义表单提交
		注:本人使用的Django1.8.3版本进行测试 除了使用Django内置表单,有时往往我们需要自定义表单.对于自定义表单Post方式提交往往会带来由CSRF(跨站请求伪造)产生的错误"CS ... 
随机推荐
- (转)javascript方法--bind()
			地址:https://www.cnblogs.com/xxxxBW/p/4914567.html bind方法,顾名思义,就是绑定的意思,到底是怎么绑定然后怎么用呢,下面就来说说我对这个方法的理解. ... 
- .NetCore Linux中安装Grafana界面及配置InfluxDB相关设置
			前面的文章已经安装好了InfluxDB 安装 wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1. ... 
- Eclipse 的一些调试技巧(转)
			原文:http://blog.csdn.net/manymore13/article/details/8972602 1.条件断点 如果你不知道如何添加断点,只需点击左边面板(行号前面)断点即被创建. ... 
- API的防重
			说说API的防重放机制 2017-03-20 18:19 by 轩脉刃, 685 阅读, 7 评论, 收藏, 编辑 说说API的防重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击.重 ... 
- Linux性能优化之磁盘优化(三)
			前言 关于本章内容,设计的东西比较多.这里会有关于文件系统.磁盘.CPU等方面的知识,以及涉及到关于这方面的性能排查等. 术语 文件系统通过缓存和缓冲以及异步I/O等手段来缓和磁盘的延时对应用程序的影 ... 
- streaming优化:并行接收数据
			val numStreams = 5 val kafkaStreams = (1 to numStreams).map { i => KafkaUtils.createStream(...) } ... 
- P1280 尼克的任务 线性DP
			题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始 ... 
- 【noip模拟赛3】拣钱
			描述 最近,Henry由于失恋(被某大牛甩掉!)心情很是郁闷.所以,他去了大牛家,寻求Michael大牛的帮助,让他尽快从失恋的痛苦中解脱出来.Michael大牛知道Henry是很爱钱的,所以他是费尽 ... 
- 001.SMB简介
			一 简介 samba基于NetBIOS协议开发,能和windows通信,但只能在局域网通信. 二 Samba主要应用 文件共享 打印服务器 Samba登录时身份验证 进行windows主机名解析 三 ... 
- linux环境下source vimrc提示错误unexpected token `"autocmd"'
			编辑完vimrc之后,使用source /etc/vimrc之后报错: $ source /etc/vimrc bash: /etc/vimrc: line 15: syntax error near ... 
