flask框架如何實現修改密碼和免密登入功能

大雄45發表於2021-07-09
導讀 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 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> <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" >

免密登入 html程式碼:

<!DOCTYPE html> <html> <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>登入您的樹懶電影</p>                     <form id="login-form" method="post">                         <div>                             <input type="text" name="userphone" id="userphone" placeholder="請輸入您的賬號">                         </div>                         <div>                             <input type="password" name="password" id="password" placeholder="請輸入您的密碼">                         </div>                         <div>                             <div>                                 <input type="checkbox" value=“1” class=“remeber” >

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

以上就是flask框架實現修改密碼和免密登入功能的詳細內容

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2780629/,如需轉載,請註明出處,否則將追究法律責任。

相關文章