一、原理
基于框架的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即可