Flask-Session

一、原理

基于框架的session,但是重新封装了session_interface,修改了open_session()和save_session()

 

二、下载

pip install flask_session

 

三、使用

导入:from flask_session import Session

实例化:Session(app) 

 

四、用redis存储session

1.导入flask_session的Session

2.实例化Session

3.修改配置文件并注册

4.在视图中使用session

# __init__.py
from flask import Flask
from flask_session import Session
from mydemo.views.mysession import sessionBlue

def create_app():
    app = Flask(__name__)
    app.config.from_object("settings.RedisConfig")  # 导入自定义的配置文件
    Session(app)                                # 实例化session
    app.register_blueprint(sessionBlue)           # 注册蓝图
    return app
# settings.py
import redis

class RedisConfig(object):
    '''将session写入redis数据库'''
    DEBUG = True
    # 设置session的类型
    SESSION_TYPE = "redis"
    # 设置redis的连接
    SESSION_REDIS = redis.Redis(host='127.0.0.1',port='6379')

'''
源码
if config['SESSION_TYPE'] == 'redis':
session_interface = RedisSessionInterface(
    config['SESSION_REDIS'], config['SESSION_KEY_PREFIX'],
    config['SESSION_USE_SIGNER'], config['SESSION_PERMANENT'])
'''
# mysession,py
from flask import Blueprint
from flask import session


sessionBlue = Blueprint("sessionBlue",__name__)

@sessionBlue.route("/set")
def set_session():
    # 设置session
    session['name'] = 'xiaoming'
    return "set"

@sessionBlue.route("/get")
def get_session():
    print(session['name'])
    return "get"
# manage.py

from mydemo import create_app

app = create_app()

if __name__ == '__main__':
    app.run()

 

五、使用方式:

flask_session是基于session,导入flask的框架使用session即可

posted @ 2019-01-02 17:42  st--st  阅读(147)  评论(0编辑  收藏  举报