1.后端
from flask import Flask,request,render_template,redirect,url_for,abort
app = Flask(__name__)
@app.route('/')
def index():
return render_template('login.html')
@app.route('/success')
def success():
cookie_1 = request.cookies.get("cookiew")#获取cookie
return render_template('login_success.html',cookie_1=cookie_1)
@app.route('/logout')
def logout():
resp = redirect(url_for('index'))#重定向到index函数
resp.delete_cookie('cookiew')#删除cookie,只是让cookie过期,并不是真的删除
return resp
@app.route('/login',methods=['POST','GET'])
def login():
if request.method == 'POST':
list = request.form
if list['nm'] == 'admin' and list['pw'] == '123456':
resp = redirect(url_for('success'))#重定向到success函数
resp.set_cookie('cookiew','admin1234567',max_age=10)#设置cookie的name和value值,以及有效时间,单位是秒
return resp
else:
return '登录失败'
else:
return '使用post提交'
# abort(401)#可以使用具有带有错误代码的abort()函数
# '''
# Code参数采用以下值之一:
#
# 400 - 用于错误请求
#
# 401 - 用于未身份验证的
#
# 403 - Forbidden
#
# 404 - 未找到
#
# 406 - 表示不接受
#
# 415 - 用于不支持的媒体类型
#
# 429 - 请求过多
# '''
if __name__ == '__main__':
app.run()
2.login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
<form action = "http://localhost:5000/login" method = "post"><!--action中的地址,映射的是route()函数-->
<p>Enter Name:</p>
<p><input type = "text" name = "nm" /></p>
<p><input type = "password" name = "pw" /></p>
<p><input type = "submit" value = "submit" /></p>
</form>
</body>
</html>
3.login_success.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录成功页面</title>
</head>
<body>
<p>登录成功页面</p>
<p>cookie:{{cookie_1}}</p>
<a href="http://localhost:5000/logout">退出</a>
</body>
</html>