基於flask框架設計使用者的登入(前後端)
阿新 • • 發佈:2018-12-08
基於flask框架設計使用者的登入(前後端)
前端程式碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/05-login" method="post"> <p>使用者名稱:<input type="text" name="uname" ></p> <p>密碼: <input type="text" name="upwd"></p> <p>記住密碼:<input type="checkbox" name="isSaved"></p> <input type="submit" value="提交"> </form> </body> </html>
後端程式碼
from flask import Flask, make_response, request, session, render_template, redirect app = Flask(__name__) # 配置 SELECT_KEY app.config['SECRET_KEY']='aixieshaxiesha,yuefuzayuehao%$' @app.route('/') def index(): return "歡迎來到首頁" @app.route('/login',methods=['GET','POST']) def login(): if request.method == 'GET': # 判斷是否已經在登入狀態上:判斷session中是否有uname的值 if 'uname' in session: # 已經登入了,直接去往首頁 return redirect('/') else: # 沒有登入,繼續向下判斷cookie if 'uname' in request.cookies: # 曾經記住過密碼,取出值儲存進session uname = request.cookies.get('uname') session['uname'] = uname return redirect('/') else: # 之前沒有登入過,去往登入頁 return render_template('login.html') else: #先處理登入,登入成功繼續則儲存進session,否則回到登入頁 uname = request.form.get('uname') upwd = request.form.get('upwd') # 本文預設正確的賬號密碼為:admin if uname=='admin' and upwd=='admin': # 宣告重定向到首頁的物件 resp = redirect('/') # 登入成功:先將資料儲存進session session['uname'] = uname # 判斷是否要記住密碼 if 'isSaved' in request.form: # 需要記住密碼,將資訊儲存進cookie resp.set_cookie('uname',uname,60*60*24*365) return resp else: # 登入失敗 return redirect('/login') if __name__ == '__main__': app.run(debug=True)