基于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)