flask框架如何实现修改密码和免密登录功能
flask是python web开发的常用框架之一。本文将讲述flask如何实现修改密码和免密登录功能 |
修改密码功能
数据库部分:
#重置密码 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 1else:print("修改失败!")return 0except: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" οnclick="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").valuevar resetpass1=document.getElementById("resetpass1").valuevar resetpass2=document.getElementById("resetpass2").valuevar submit_flag=1//判空if((userphone.length==0)||(resetpass1.length==0)||(resetpass2.length==0)){submit_flag=0alert("请把信息填写完整!")}//判断密码一致性if(resetpass2!=resetpass1){submit_flag=0alert("两次填写的密码不一致")document.getElementById("resetpass1").focus();}//判断手机号if(userphone.length!=11){submit_flag=0alert("手机号码应为11位!")document.getElementById("userphone").focus();}var regu = /^1[3456789]\d{9}$/if(!(regu.test(userphone)) ){submit_flag=0alert("手机号码格式有误!")document.getElementById("userphone").focus();}//判断密码格式if(!((resetpass1.length>=6)&&resetpass1.length<=18)){submit_flag=0alert("密码长度应该为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=0alert("密码为数字+英文字母 且不可以包含空格!")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” οnclick="onClickHander(this)"><label>记住密码</label></div></div><button type="button" class="login-button" οnclick="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=0function onClickHander(obj) {if(obj.checked==true){cb=1// alert(cb)}else{cb=0// alert(cb)}}function login_(){var userphone=document.getElementById("userphone").valuevar 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("账号或密码错误!")//验证成功,返回responseif (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'] = userphoneif(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 #登录成功且用户选择记住密码,返回responseelse:print("登录成功 返回 1 状态码")return jsonify({"data": 1}) # 登录成功 返回 1 状态码else:print("登录失败 返回 0 状态码")return jsonify({"data":0}) #登录失败 返回 0 状态码
数据库验证登录
# 用户(web)登录验证 def web_login(userphone, password):cursor = Noneconn = Noneres=[]if(userphone==None or password==None):return Falseconn, 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 Falseelse:close_conn(conn, cursor)print("登陆成功(WEB)")return True
以上就是flask框架实现修改密码和免密登录功能的详细内容
flask框架如何实现修改密码和免密登录功能相关推荐
- Hadoop2——SSH免密登录功能配置
SSH免密登录功能配置 我有三台虚拟机,其中一台主机,两台克隆机 192.168.159.130 hadoop01 (主机) 192.168.159.128 hadoop02 192.168.159. ...
- 杨校老师课堂之集群内SSH免密登录功能配置
SSH免密登录功能配置 1. 在主节点虚拟机内进行如下操作: [root@hadoop1 tmp]# ssh-keygen -t rsaGenerating public/private rsa ke ...
- SAP小技巧之 全版本的SAPGUI免密登录方式
点击蓝字 关注我们 前言 SAPGUI 7.4以下版本提供了一个创建快捷方式时输入密码的功能(激活这个功能需要调整注册表,搜索SAPGUI免密登录,可以查到很多,这里就不啰嗦了).有多少人为了使用这个 ...
- 中国移动一键免密登录103102 Android 包签名错误
1.概述 移动统一认证一键免密登录 api 被调用时会检测应用的 MD5 应用签名以确认应用的合法性.出现103102 包签名错误那么就是应用的 MD5 签名与用户在中国移动开发者社区上填写的 MD5 ...
- 若依框架免密登录(仅做参考)
一.在framework模块下security包下新建config包,在包里新建CustomLoginAuthenticationProvider.java类 继承DaoAuthenticationP ...
- windows远程连接ubuntu-(密码登录、密钥登录、免密登录)
入坑前的必备小知识: 什么是公钥登录? 所谓"公钥登录",就是用户将自己的公钥储存在远程主机上.登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来.远 ...
- Mysql 更改密码详解及设置免密登录
更改密码: 5.7版本以前: update mysql.user set password=password('root') where user='root'; 5.7及以上: update mys ...
- ssh设置免密登录后登录仍需密码可能的原因,以及 ssh 出问题或的调试方法
免密登录失败 ssh设置免密登录后登录仍需密码可能的原因,home 路径下的对应用户权限不对,或者 .ssh 文件夹权限不对,/home/$user 和 /home/$user/.ssh 路径必须是 ...
- 解决mysql不能修改密码_如何解决mysql修改密码后不能成功登录_数据库_mysql修改密码_课课家...
今天给大家解决下MySQL修改密码后导致不能登录的问题,一般我们都知道mysql4.1.1版本后修改了用户密码的格式,一旦修改了密码,4.1.1以前的版本上是不能进行成功登录的,那么对于这些问题该如何 ...
最新文章
- cisco与h3c的console、vty配置比较
- Linux(内核和用户态的)动态内存管理
- 也说翟鸿燊忽悠的一面
- 【图像处理】——灰度变换心得(cv2.normalize规范化值0-255,cv2.convertScaleAbs(new_img)转为8位图)
- 【华为云技术分享】《跟唐老师学习云网络》 - Tcpdump大杀器抓包
- json vue 对象转数组_vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
- intel 指令集_苹果首款ARM Mac来了,浅谈ARM和Intel处理器
- pinia中文文档 指导文档中文翻译版 pinia指导中文翻译
- javascript;json数据,js转换日期方法。
- “鱼”和“熊掌”也能兼得——省时省心
- 【生活相关】三(米新江老师语录)
- python爬虫SSL: CERTIFICATE_VERIFY_FAILED解决方案
- 我眼中的《APUE》
- EasyUI仓库管理系统
- 服务器为什么经常掉线?
- 利用CSS3中的clac()实现按照屏幕分辨率自适应宽度
- 关于NOI Linux的IDE及代码调试技巧(OIER必看)
- CPU和内存之间关系的演变
- wav2lip:Accurately Lip-syncing Videos In The Wild
- Shor’s algorithm