flask插件之flask_session源码分析

flask_session是一个flask的第三方组件,核心思想:就是自定义了flask内置session中的app.session_interface,实现session保存在数据库中,主要实现的方法就是以下几个类中的open_sessionsave_session方法:
RedisSessionInterface
MemcachedSessionInterface
FileSystemSessionInterface
MongoDBSessionInterface
SqlAlchemySessionInterface

# 方式一
from flask_session import RedisSessionInterface
from redis import Redis

redis = Redis(host="127.0.0.1")
"""
key_prefix 前缀
use_signer 是否使用签名
permanent  为False,cookie为关闭浏览器失效
"""
app.session_interface = RedisSessionInterface(redis=redis, key_prefix="__")

方式二

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_session import Session

db = SQLAlchemy()

from . import models
from .views.login import login


def create_app(settings_cls):
    app = Flask(__name__, template_folder='templates', static_folder='statics', static_url_path='/static')

    @app.errorhandler(404)
    def error_404(arg):
        return "404错误了"
    app.config.from_object(settings_cls)   # 加载配文件
    Session(app)  # session写到redis
    db.init_app(app)  # 初始化数据库
    app.register_blueprint(login)
    return app

settings.py

SESSION_TYPE = 'redis'  # session类型为redis
SESSION_KEY_PREFIX = 'session:'  # 保存到session中的值的前缀
# SESSION_PERMANENT = True  # 如果设置为False,则关闭浏览器session就失效。
# SESSION_USE_SIGNER = False  # 是否对发送到浏览器上 session:cookie值进行加密
SESSION_REDIS = Redis(host="127.0.0.1", port='6739')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值