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

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
View Code

 

app_session.py

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()
View Code

 

 

 

 

 

 

 

 

 

posted on 2020-02-17 21:47  显示账号  阅读(278)  评论(0编辑  收藏  举报