数据库部分:

 1 #重置密码
2 def reset_pass(phone,password):
3 conn,cursor=get_conn()
4 sql="update userdata set userpass='"+password+"' where userphone='"+phone+"'"
5 try:
6 print("正在修改密码...")
7 resetflag=cursor.execute(sql)
8 conn.commit()
9 close_conn(conn,cursor)
10 if(resetflag==1):
11 print("修改成功")
12 return 1
13 else:
14 print("修改失败!")
15 return 0
16 except:
17 print("系统错误...修改密码失败!")
18 return 0

路由部分:

 1 #用户修改密码
2 @app.route('/resetpass',methods=['GET', 'POST'])
3 def resetpass():
4 userphone=request.values.get('userphone')
5 resetpass=request.values.get('resetpass')
6 print("路由获得手机号:"+userphone+"\n")
7 print("路由获得新密码:" + resetpass + "\n")
8 flag=sql.reset_pass(userphone,resetpass)
9 if(flag==1):
10 return jsonify({"data":1})
11 else:
12 return jsonify({"data":0})

html页面:

  1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
7 <title>树懒电影---重置您的密码</title>
8 <style type="text/css">
9 #resetform{
10 margin-top: 350px;
11 margin-left: 750px;
12 }
13 </style>
14 </head>
15 <body>
16 <form method="post" id="resetform">
17 <tr>
18 <td><input type="text" id="userphone" value="" placeholder="输入您的手机号码"></td>
19 </tr><br>
20 <tr>
21 <td><input type="password" id="resetpass1" value="" placeholder="输入您的新密码"></td>
22 </tr><br>
23 <tr>
24 <td><input type="password" id="resetpass2" value="" placeholder="再次输入您的新密码"></td>
25 </tr><br>
26 <tr>
27 <td><input type="reset" value="清空"></td>
28 <td><input type="button" id="resetbtn" onclick="resetpass()" value="提交"></td>
29 </tr>
30 </form>
31 </body>
32 </html>
33 <script src="../static/js/jquery.min.js"></script>
34 <script type="text/javascript">
35 function resetpass(){
36 var userphone=document.getElementById("userphone").value
37 var resetpass1=document.getElementById("resetpass1").value
38 var resetpass2=document.getElementById("resetpass2").value
39 var submit_flag=1
40 //判空
41 if((userphone.length==0)||(resetpass1.length==0)||(resetpass2.length==0)){
42 submit_flag=0
43 alert("请把信息填写完整!")
44 }
45 //判断密码一致性
46 if(resetpass2!=resetpass1){
47 submit_flag=0
48 alert("两次填写的密码不一致")
49 document.getElementById("resetpass1").focus();
50 }
51 //判断手机号
52 if(userphone.length!=11){
53 submit_flag=0
54 alert("手机号码应为11位!")
55 document.getElementById("userphone").focus();
56 }
57 var regu = /^1[3456789]\d{9}$/
58 if(!(regu.test(userphone)) ){
59 submit_flag=0
60 alert("手机号码格式有误!")
61 document.getElementById("userphone").focus();
62 }
63 //判断密码格式
64 if(!((resetpass1.length>=6)&&resetpass1.length<=18))
65 {
66 submit_flag=0
67 alert("密码长度应该为6-16位!")
68 document.getElementById("resetpass1").focus();
69 }
70 var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z]).{6,18}');
71 part_pass=resetpass1.split(" ")
72 if((!(regex.test(resetpass1))) || part_pass.length!=1)
73 {
74 submit_flag=0
75 alert("密码为数字+英文字母 且不可以包含空格!")
76 document.getElementById("resetpass1").focus();
77 }
78
79 //发起请求
80 if(submit_flag==1)
81 {
82 $.ajax({
83 url:"/resetpass",
84 data:{userphone:userphone,resetpass:resetpass2},
85 success: function (data) {
86 if (data.data==1)
87 {
88 alert("密码修改成功!")
89 window.open("/",'_self')
90 }
91 else
92 {
93 alert("修改密码失败!请重试")
94 }
95 },
96 error: function (xhr, type, errorThrown) {
97 // print("ajax请求失败!")
98 }
99 })
100 }
101 // alert(submit_flag)
102 }
103 </script>

Python---flask框架实现修改密码功能的更多相关文章

  1. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (II)

    #3使用html+css+js制作网页 番外篇 使用python flask 框架 II第二部 0. 本系列教程 1. 登录功能准备 a.python中操控mysql b. 安装数据库 c.安装mys ...

  2. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  3. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  4. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(五)——实现注册功能

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  5. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(四)——对 run.py 的调整

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  6. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  7. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (I)

    #3使用html+css+js制作网页 番外篇 使用python flask 框架(I 第一部) 0. 本系列教程 1. 准备 a.python b. flask c. flask 环境安装 d. f ...

  8. Linux ubantu中安装虚拟/使用环境virtualenv以及python flask框架

    今天学习了python flask框架的安装过程以及使用案例,感觉网上讲的东西都没有从我们这种初学者的角度去考虑(哈哈),最后还是奉上心得: 1.安装virtualenv $ sudo apt-get ...

  9. python flask框架学习——开启debug模式

    学习自:知了课堂Python Flask框架——全栈开发 1.flask的几种debug模式的方法 # 1.app.run 传参debug=true app.run(debug=True) #2 设置 ...

  10. python flask框架学习(二)——第一个flask程序

    第一个flask程序 学习自:知了课堂Python Flask框架——全栈开发 1.用pycharm新建一个flask项目 2.运行程序 from flask import Flask # 创建一个F ...

随机推荐

  1. CSS实现导航栏

    1.知识点 列表 浮动 伪类 背景 文本格式化 盒子模型 2.效果 3.代码 <!DOCTYPE html> <html lang="en"> <he ...

  2. Java开发技巧杂记

    杂记一 创建项目的spring initializr,要求是创建spring boot3.0,且不在支持java8语言,且要求语言大于17,所以创建项目时,无法创建srping2.0项目了:如果要创建 ...

  3. Redis搭建Sentinel实验环境

    环境准备 在物理机上启动3台虚拟机,IP地址分别为:192.168.56.4,192.168.56.5,192.168.56.6. 1.确保3台虚拟机的网络是相互联通的. 2.确保已经在3台虚拟机上安 ...

  4. 文心一言 VS 讯飞星火 VS chatgpt (201)-- 算法导论15.2 6题

    六.用go语言,证明:对 n 个元素的表达式进行完全括号化,恰好需要 n-1 对括号. 文心一言,代码正常运行: 在Go语言中,证明对n个元素的表达式进行完全括号化恰好需要n-1对括号,可以通过数学归 ...

  5. 2021-07-20 value!==value,JavaScript中NaN

    关于NaN NaN 属性代表一个"不是数字"的number类型的字面量值.这个特殊的值是因为运算不能执行而导致的,不能执行的原因要么是因为其中的运算对象之一非数字. NaN的出现场 ...

  6. 微服务程序运行步骤及nameko入门案例

    首先一个微服务应用程序需要有服务的生产者和服务的消费者,另外还需要一个注册中心来管理和调度服务 1.服务提供方,即生产者启动服务,并将服务提交到注册中心注册服务 2.服务需求方,即消费者连接到注册中心 ...

  7. 【Azure 云服务】Cloud Service Worker Role Workerrole突然停机,查看Events发现 Defrag Error (0x8900002D)

    问题描述 Cloud Service Worker Role Workerrole突然停机,查看Events,发现是错误源为 Defrag. 错误消息: The volume Windows was ...

  8. 【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置

    问题描述 问题一:Redis服务,如何可以做到仅允许特定的子网内的服务器进行访问? 问题二:Redis服务,timeout和keepalive的设置是怎样的?是否可以配置成timeout 0? 问题三 ...

  9. C++ STL 容器-Deque

    C++ STL 容器-Deque std::deque(双端队列)是C++标准模板库(STL)中的一个容器,它支持在序列的两端快速插入和删除元素.与std::vector和std::list等其他序列 ...

  10. C++ //set/multiset 容器 //set不可以插入重复的数字 multiset可以插入重复的数字 //ste容器构造和赋值 //set大小和交换 //set 插入和删除 //set查找和统计 //set 和 multiset 区别 //pair 对组创建 //set存放自定义数据类型 //set内置数据 进行排序

    1 //set/multiset 容器 //set不可以插入重复的数字 multiset可以插入重复的数字 2 //ste容器构造和赋值 //set大小和交换 //set 插入和删除 3 //set查 ...