在flask中如何完成修改密码功能,代码是什么
Admin 2022-07-09 群英技术资讯 333 次浏览
数据库部分:
#重置密码 def reset_pass(phone,password): conn,cursor=get_conn() sql="update userdata set userpass='"+password+"' where userphone='"+phone+"'" try: print("正在修改密码...") resetflag=cursor.execute(sql) conn.commit() close_conn(conn,cursor) if(resetflag==1): print("修改成功") return 1 else: print("修改失败!") return 0 except: print("系统错误...修改密码失败!") return 0
路由部分:
#用户修改密码 @app.route('/resetpass',methods=['GET', 'POST']) def resetpass(): userphone=request.values.get('userphone') resetpass=request.values.get('resetpass') print("路由获得手机号:"+userphone+"\n") print("路由获得新密码:" + resetpass + "\n") flag=sql.reset_pass(userphone,resetpass) if(flag==1): return jsonify({"data":1}) else: return jsonify({"data":0})
html页面:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>树懒电影---重置您的密码</title> <style type="text/css"> #resetform{ margin-top: 350px; margin-left: 750px; } </style> </head> <body> <form method="post" id="resetform"> <tr> <td><input type="text" id="userphone" value="" placeholder="输入您的手机号码"></td> </tr><br> <tr> <td><input type="password" id="resetpass1" value="" placeholder="输入您的新密码"></td> </tr><br> <tr> <td><input type="password" id="resetpass2" value="" placeholder="再次输入您的新密码"></td> </tr><br> <tr> <td><input type="reset" value="清空"></td> <td><input type="button" id="resetbtn" onclick="resetpass()" value="提交"></td> </tr> </form> </body> </html> <script src="../static/js/jquery.min.js"></script> <script type="text/javascript"> function resetpass(){ var userphone=document.getElementById("userphone").value var resetpass1=document.getElementById("resetpass1").value var resetpass2=document.getElementById("resetpass2").value var submit_flag=1 //判空 if((userphone.length==0)||(resetpass1.length==0)||(resetpass2.length==0)){ submit_flag=0 alert("请把信息填写完整!") } //判断密码一致性 if(resetpass2!=resetpass1){ submit_flag=0 alert("两次填写的密码不一致") document.getElementById("resetpass1").focus(); } //判断手机号 if(userphone.length!=11){ submit_flag=0 alert("手机号码应为11位!") document.getElementById("userphone").focus(); } var regu = /^1[3456789]\d{9}$/ if(!(regu.test(userphone)) ){ submit_flag=0 alert("手机号码格式有误!") document.getElementById("userphone").focus(); } //判断密码格式 if(!((resetpass1.length>=6)&&resetpass1.length<=18)) { submit_flag=0 alert("密码长度应该为6-16位!") document.getElementById("resetpass1").focus(); } var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z]).{6,18}'); part_pass=resetpass1.split(" ") if((!(regex.test(resetpass1))) || part_pass.length!=1) { submit_flag=0 alert("密码为数字+英文字母 且不可以包含空格!") document.getElementById("resetpass1").focus(); } //发起请求 if(submit_flag==1) { $.ajax({ url:"/resetpass", data:{userphone:userphone,resetpass:resetpass2}, success: function (data) { if (data.data==1) { alert("密码修改成功!") window.open("/",'_self') } else { alert("修改密码失败!请重试") } }, error: function (xhr, type, errorThrown) { // print("ajax请求失败!") } }) } // alert(submit_flag) } </script>
html代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="../static/css/login.css" rel="external nofollow" > <script src="../static/js/jquery-1.7.2.min.js"></script> <script src="../static/js/register.js"></script> <title>树懒电影登录</title> <script > </script> </head> <body> <div id="container"> <div id="container-child"> <div id="img-div"><img src="../static/img/shulan.png"></div> <div id="login-div"> <div> <p class="p-title">登录您的树懒电影</p> <form id="login-form" method="post"> <div class="input-d"> <input class="input-text" type="text" name="userphone" id="userphone" placeholder="请输入您的账号"> </div> <div class="input-d"> <input class="input-text" type="password" name="password" id="password" placeholder="请输入您的密码"> </div> <div class="div-input"> <div> <input type="checkbox" value=“1” class=“remeber” onclick="onClickHander(this)"> <label>记住密码</label> </div> </div> <button type="button" class="login-button" onclick="login_()">登 录</button> <div class="footer"> <a href="http://127.0.0.1:5000/regis" rel="external nofollow" >注册</a> | <a href="http://127.0.0.1:5000/reset" rel="external nofollow" >忘记密码</a></div> </form> </div> </div> </div> </div> </body> </html> <script> var cb=0 function onClickHander(obj) { if(obj.checked==true){ cb=1 // alert(cb) }else{ cb=0 // alert(cb) } } function login_(){ var userphone=document.getElementById("userphone").value var password=document.getElementById("password").value // alert(cb) $.ajax({ url: "/web_login", data: { userphone:userphone,password:password,cb:cb }, success: function (data) { //正常验证失败弹窗 if (data.data == 0) alert("账号或密码错误!") //验证成功,返回response if (data.data != 0) window.open("http://127.0.0.1:5000/show","_self") }, error: function (xhr, type, errorThrown) { print("登录js,验证账号密码ajax请求失败!") } }) } </script>
Python路由
#免密登录 @app.route('/web_login/',methods=['GET', 'POST']) def web_login(): userphone = request.values.get('userphone') password=request.values.get('password') cb=request.values.get('cb') print("是否记住密码: "+cb) #cb的返回值类型是 str 字符串 # print(type(cb)) print("登录账号:"+userphone+" "+"密码:"+password) res=sql.web_login(userphone,password) if(res==True): session['userphone'] = userphone if(cb=="1"): print("开始存储cookie登录账号:" + userphone + " " + "密码:" + password) resp = make_response('储存cookie') resp.set_cookie('cookphone', userphone, max_age=3600 * 24 * 15) resp.set_cookie('cookpass', password, max_age=3600 * 24 * 15) print("登录成功且用户选择记住密码,返回response") return resp #登录成功且用户选择记住密码,返回response else: print("登录成功 返回 1 状态码") return jsonify({"data": 1}) # 登录成功 返回 1 状态码 else: print("登录失败 返回 0 状态码") return jsonify({"data":0}) #登录失败 返回 0 状态码
数据库验证登录
# 用户(web)登录验证 def web_login(userphone, password): cursor = None conn = None res=[] if(userphone==None or password==None): return False conn, cursor = get_conn() sql = "select userphone,userpass from userdata where '"+userphone+"'=userphone and '"+password+"'=userpass " res=query(sql) conn.commit() if(len(res)==0): print("登陆失败(WEB)") close_conn(conn, cursor) return False else: close_conn(conn, cursor) print("登陆成功(WEB)") return True
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了python人工智能tensorflow函数tf.nn.dropout使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
这篇文章主要介绍了教你利用Python+Turtle绘制简易版爱心表白,文中有非常详细的代码示例,对想要和男朋友或者女朋友表白的小伙伴们有很大帮助哟,需要的朋友可以参考下
SparkSQL不仅能够查询MySQL数据库中的数据,还可以向表中插人新的数据,实现方式的具体代码如文件4-5所示。
这篇文章主要介绍了python求解三角形第三边长实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
今天给大家带来的是关于Python的相关知识,文章围绕着Pygame键盘事件展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008