七、session

1、session的本质

  session是一个SecureCookieSession类(继承自CallbackDict、SessionMixin)的实例化对象,可以将其当做一个字典,用于存储用户的登录信息。flask的session与django的session不同之处在于,在服务器端将登录信息保存在session里面,当返回响应的时候,flask将session序列化成了字符串,然后设置响应头的Set-Cookie,用于将序列化后的信息保存在客户端(默认的键为session,可以自己设定)。当用户再次登录时,就会携带键名为session的Cookie信息,flask就会在对其就行解析,将其写入到session中,如果没有,则创建一个空的session。

2、session的创建流程

 

 由上图可知,session(SecureCookieSession)和request(Request)被封装在ctx(RequestContext)中,我们经常使用的session和request

1 from flask import request, session

就是ctx.request和ctx.session。

由于session是一个继承自字典的类的对象,所以在往session里面写入数据可删除数据时,可以使用字典的方式

# 写入数据
session["k1"] = "v1"

# 删除数据
del session["k1"]

 

 

posted @ 2020-07-25 21:14  找回失去的自我  阅读(126)  评论(0编辑  收藏  举报