flask 引入redis 替换原生session存储session(flask-session)

环境:

  python 3.7.4

  win 10 环境

  redis 服务

 

模块依赖:

  flask

  flask-session

  redis

 

工程目录:

  

 

 

flask 引入redis 替换原生session存储session(flask-session)

  在配置文件中加入redis连接配置以及flask-session 替换为 redis方式

  

 

   

import uuid, os
from redis import Redis

class BasicConfig(object):
    # SECRET_KEY = os.urandom(24)
    SECRET_KEY = str(uuid.uuid4())

class DevConfig(BasicConfig):
    DEBUG = True
    # Mysql 配置
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1/anec'
    SQLALCHEMY_TRACK_MODIFICATIONS = 'False'
    SQLALCHEMY_POOL_SIZE = 5
    SQLALCHEMY_POOL_TIMEOUT = 15

    # redis 与 flask-session 配置
    SESSION_TYPE = 'redis'  # session存储格式为redis
    SESSION_REDIS = Redis(host='192.168.0.118', port=6379)
    SESSION_USE_SIGNER = True  # 是否强制加盐,混淆session
    SESSION_PERMANENT = False  # sessons是否长期有效,false,则关闭浏览器,session失效
    PERMANENT_SESSION_LIFETIME = 3600  # session长期有效,则设定session生命周期,整数秒,默认大概不到3小时。

 

  在views 中使用 session

from App.RedisSession import redissession
from flask import session, request


@redissession.route('/')
def default():
    return session.get('key', 'not set')


@redissession.route('/test/')
def test():
    session['key'] = 'test'
    return 'ok'


@redissession.route('/set/')
def set():
    # 从请求头中获取 新的Key值
    arg = request.args.get('key')
    print(arg)
    session['key'] = arg
    return 'ok'


@redissession.route('/get/')
def get():
    return session.get('key', 'not set')


@redissession.route('/pop/')
def pop():
    session.pop('key')
    return session.get('key', 'not set')


@redissession.route('/clear/')
def clear():
    session.clear()
    return session.get('key', 'not set')

 

posted @ 2021-01-03 19:57  Anec  阅读(247)  评论(0编辑  收藏  举报