主要知识点:
环境
Python3
库
flask.session
要求:
第一次访问网页需要登录,之后一定时间内不需要登录
学习记录:
生成session
首先引入session模块
from flask import session
设置一个用于session加密的密钥
app = Flask(__name__)
app.secret_key = '!@#$%^&*()11'
网上很多文章推荐使用随机密钥,对于长期在线的服务器来说这种方式是可行的,Flask每次运行都会更新一次密钥,但我们学习用的Flask服务端,可能经常要启停,不方便测试,所以这里设置一个静态的即可
主页处理函数
@app.route('/')
def welcome():
session.permanent = True #设置Session长期有效,默认31天
#检查用户携带的SESSION内是否包含用户名
if 'username' in session:
return '你好,' + session['username']
else:
#未登录用户跳转登录界面进行登录
return render_template("login.html")
登录页面POST提交表单处理函数
@app.route('/login', methods=['POST'])
def login():
if request.method == 'POST':
username = request.form.get("uname")
password = request.form.get("upwd")
#检查账号密码是否匹配
if check_password(username, password):
#分发带有用户名的SESSION给该用户
session['username'] = username
return "登陆成功"
else:
return "账号或密码错误"
Session的过期时长可以进行设置,详情网上有很多资料
退出登录请求处理
@app.route('/delete',methods=['POST'])
def delete():
if 'username' in session:
#print(session['username'],"已登出")
session.clear()
return render_template("login.html")