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),
]

实现效果如下

原文地址:https://www.cnblogs.com/yoyoketang/p/10470970.html

时间: 2024-07-29 21:55:31

python测试开发django-27.表单提交之post修改密码的相关文章

UI标签库专题三:JEECG智能开发平台 FormValidation(表单提交及验证标签)

?? 1. FormValidation(表单提交及验证标签) 1.1.  参数 属性名 类型 描述 是否必须 默认值 action string 表单提交路径 否 null formid string 表单唯一标示 是 formobj refresh boolean dialog为true时是否刷新父页面 否 true callback string 表单提交完成后的回调函数 否 null beforeSubmit string 表单提交前的处理函数 否 null btnsub string

UI标签库专题三 JEECG智能开发平台 FormValidation 表单提交及验证标签

1. FormValidation(表单提交及验证标签) 1.1.  参数 属性名 类型 描述 是否必须 默认值 action string 表单提交路径 否 null formid string 表单唯一标示 是 formobj refresh boolean dialog为true时是否刷新父页面 否 true callback string 表单提交完成后的回调函数 否 null beforeSubmit string 表单提交前的处理函数 否 null btnsub string 触发表

泛微ecology8二次开发-关于流程表单提交校验

泛微流程表单里有个提交校验方法,是泛微预留的,为了方便开发人员遇到一些解决不了的事件.此方法是: checkCustomize = function() { return false: }); 方法里可写对某个对象的判断,如果符合就  return true: 否则return false:不让提交. 刚开始开发流程表单时,很多地方用到这个提交校验的方法,这时候需要注意: 1.有的流程表单,你只要写了这个方法,并且点击了提交按钮,此方法函数就会执行,执行完之后会校验模板中设置的字段必填项. 2.

python测试开发django-72.删除表后如何重新生成表

前言 在使用ORM建表的时候,由于需要对数据库表的重新设计,需要删除原表,并通过Django的ORM功能重新同步表. 删除表之后,发现用 makemigrations 和 migrate 无法生成新的表了. 遇到问题 当我新建一个 Model ,同步完数据库后,再修改里面的字段名称,发现无法同步到数据库,于是就把数据库里面的整张表删除了. 结果再同步数据库就无法生成新的表了,就算删除 migrations 目录下的0001_initial.py文件也一样. # 新建了一个PersonIn类,继承

Django框架开发中避免表单重复提交

Form表单做为web2.0时代的重要角色,也是我们与web网站进行数据交互的重要渠道,但是大家在web网站开发过程中,都会遇到一个问题,那就是如何避免表单重复提交,我们可不确定用户可在提交了一个表单后,是否有足够的耐心等待我们的程序加载完成,如果此时用户不耐烦的在前台重复刷新页面,那么就会造成数据重复提交.信息不准确,因此我们在程序设计时一定要规避这样的问题,接下来介绍一下在Django框架开发中如何避免此问题. 首先说明一下Http协议中两种非常常见的方法GET和POST. 1.GET方法往

用python模拟登录(解析cookie + 解析html + 表单提交 + 验证码识别 + excel读写 + 发送邮件)

老婆大人每个月都要上一个网站上去查数据,然后做报表. 为了减轻老婆大人的工作压力,所以我决定做个小程序,减轻我老婆的工作量. 准备工作 1.tesseract-ocr 这个工具用来识别验证码,非常好用. ubuntu上安装: sudo apt-get install tesseract-ocr 非常简单. 2.pytesseract和PIL(pillow) pytesseract用来在python中调用tesseract-ocr,PIL(pillow)用来加载图片,安装方法如下: pip3 in

Swift3.0服务端开发(二) 静态文件添加、路由配置以及表单提交

今天博客中就来聊一下Perfect框架的静态文件的添加与访问,路由的配置以及表单的提交.虽然官网上有聊静态文件的访问的部分,但是在使用Perfect框架来访问静态文件时还是有些点需要注意的,这些关键点在其官方文档上并未提出.今天我们要做的事情就是通过浏览器访问静态文件,然后在静态文件中使用form表单往指定的路由上进行提交相应的数据. 一.静态文件的添加与访问 1.未使用Xcode管理的Perfect的静态文件根目录的配置 在PHP开发或者Java Web开发中,都有一个根目录来存储相应的静态文

Django初体验(一):自定义表单提交

注:本人使用的Django1.8.3版本进行测试 除了使用Django内置表单,有时往往我们需要自定义表单.对于自定义表单Post方式提交往往会带来由CSRF(跨站请求伪造)产生的错误"CSRF verification failed. Request aborted." 本篇博客只要针对"表单提交"和"Ajax提交"两种方式来解决CSRF带来的错误 一.表单提交 Template: <!DOCTYPE html> <html

spring mvc在注解开发下表单提交到不了Controller方法的解决手段

这个问题很诡异,不太懂为什么,但是知道如何解决,如果知道为什么的话希望能评论我下! 表单提交代码如下: <form class="form clearfix" action="${website}register" method="post"> <h1 class="title">智能码控门禁系统<span class="in">注册</span >/<