5、flask-会话

会话是客户端登录到服务器并注销服务器的时间间隔。需要在该会话中保存的数据会存储在服务器上的临时目录中。

这个对象相当于用密钥签名加密的 cookie ,即用户可以查看你的 cookie ,但是如果没有密钥就无法修改它

会话会为每个客户端的会话分配会话ID。会话数据存储在cookie的顶部,服务器以加密方式对其进行签名

一个实现了简单登录功能的demo:

from flask import Flask, session, redirect, url_for, request

# 创建一个app实例
app = Flask(__name__)

"""
必须创建一个 secret_key,创建方法:
import os
print(os.urandom(16))
"""
app.secret_key = '\xf9\x84L<\x12/;\xcfg\xdf\x18!I:\xa3\x8e?\xed\x08O'


# 主页面,如果有会话数据则显示登陆人,如果没有会话数据则提示跳转到登录
@app.route('/')
def root():
    if 'username' in session:
        username = session['username']
        return f"{username} 正在访问主页
点击这里注销" return "未登录, 无法访问该页面
点击这里登录" # 登录,如果发送的是post请求则去进行校验,校验通过跳转到主页面,如果发送的是get请求则显示登录页面 @app.route('/login', methods=['POST', 'GET']) def login(): if request.method == 'POST': session['username'] = request.form['username'] return redirect(url_for('root')) return '''

''' # 删除会话并且跳转到主页 @app.route('/logout') def logout(): session.pop('username', None) return redirect(url_for('root')) if __name__ == '__main__': app.run(debug=True)

效果:

你可能感兴趣的:(5、flask-会话)