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 ...
随机推荐
- 测试开发之前端——No2.HTML5中的标签
HTML5中的标签. 标签 描述 <!--...--> 定义注释. <!DOCTYPE> 定义文档类型. <a> 定义超链接. <abbr> 定义缩写 ...
- tensorflow-作用域
变量名字由两部分组成:scope/变量name. name 参数才是对象的唯一标识. 1.tf.name_scope() Graph中保存着一个属性_name_stack(string类型),_nam ...
- (转)Python函数式编程——map()、reduce()
转自:http://www.jianshu.com/p/7fe3408e6048 1.map(func,seq1[,seq2...]) Python 函数式编程中的map()函数是将func作用于se ...
- KnockoutJs学习笔记(十)
event binding主要用于为指定的事件添加相应的处理函数,可以作用于任意事件,包括keypress.mouseover.mouseout等(也包括之前提到的click,根据后面的描述,clic ...
- 6. 缓存 - 《APS.NET本质论》
CaChe是ASP.NET中唯一可以根据服务器使用情况,动态管理内存使用的状态管理方案.我们通过每个缓存数据的键值字符串来区分缓存的数据. 简单案例来说.将数据从数据库/文件取出放在服务器内存中,后来 ...
- Dynamic Rankings || 动态/静态区间第k小(主席树)
JYF大佬说,一星期要写很多篇博客才会有人看 但是我做题没有那么快啊QwQ Part1 写在前面 区间第K小问题一直是主席树经典题=w=今天的重点是动态区间第K小问题.静态问题要求查询一个区间内的第k ...
- 入门NodeJS
入门NodeJS https://www.cnblogs.com/dotnetcrazy/p/10118756.html NodeJS 1.环境配置 之前讲ES6的时候有提过一部分Node的知识,简单 ...
- Windows下CRF++进行中文人名识别的初次尝试
语料来自1998年1月份人民日报语料 1 语料处理 1.1 原始语料数据格式 语料中,句子已经被分词好,并且在人名后以“/”标注了“nr”表示是人名,其他非人名的分词没有进行标注 1.2 CRF++要 ...
- MAC配置DNS服务器
1.brew install dnsmasq 2.cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf ...
- SpringBoot详细研究-01基础
Springboot可以说是当前最火的java框架了,非常适合于"微服务"思路的开发,大幅缩短软件开发周期. 概念 过去Spring充满了配置bean的xml文件,随着spring ...