当前位置:
首页 > temp > python入门教程 >
-
Python---flask框架实现修改密码功能
数据库部分:
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>
文章出处:https://www.cnblogs.com/rainbow-1/p/14800247.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数