session就是dict ,存放在内存中
当请求刚到来:flask读取cookie中session对应的值(网络请求中携带),将该值解密并反序列化成字典,放入内存以便视图函数使用。 视图函数: @app.route('/index') def ses(): session['name'] = 'admin' session['age'] = 456 del session['age'] return "session" 当请求结束时,flask会读取内存中字典的值,进行序列化+加密,写入到用户cookie中。
session的一些其它配置
SESSION_COOKIE_NAME = 'session' SESSION_COOKIE_DOMAIN = None SESSION_COOKIE_PATH = None SESSION_COOKIE_HTTPONLY = True SESSION_COOKIE_SECURE = False SESSION_REFRESH_EACH_REQUEST = True #session的过期时间 PERMANENT_SESSION_LIFETIME = timedelta(hours=1)
settings.py
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from datetime import timedelta class Base(object): """共有的配置放在基类里面""" MAX_COOKIE_SIZE = 100000 SESSION_COOKIE_NAME = 'session' SESSION_COOKIE_DOMAIN = None SESSION_COOKIE_PATH = None SESSION_COOKIE_HTTPONLY = True SESSION_COOKIE_SECURE = False SESSION_REFRESH_EACH_REQUEST = True #session的过期时间 PERMANENT_SESSION_LIFETIME = timedelta(hours=1) class DEV(Base): """开发环境""" DEBUG= True class Pro(Base): """生产环境""" DEBUG=False
app_session.py
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from flask import Flask,session app = Flask(__name__) # app.secret_key = 'flask' app.config.from_object('settings.DEV') @app.route('/index') def index(): session['name'] = 'admin' return 'session' if __name__ == '__main__': app.run()