美文网首页
flask应用将session存储到redis中

flask应用将session存储到redis中

作者: 忘了呼吸的那只猫 | 来源:发表于2021-08-09 14:22 被阅读0次
  • 1.安装依赖包

pip install Flask-Session

pip install redis
  • 2.加入配置

SESSION_TYPE = 'redis'
SESSION_REDIS= Redis(    #redis的服务器参数
    host='192.168.1.3',                 #服务器地址
    port=6379)                           #服务器端口
  • 3.使用app初始化flask_session.Session

flask_session.Session(app)

完整源码

import os
from flask import Flask, session, request
from flask_session import Session
from redis import Redis

app = Flask(__name__)
app.config['SESSION_TYPE'] = 'redis'   #session存储格式为redis
app.config['SESSION_REDIS'] = Redis(    #redis的服务器参数
    host='192.168.1.3',                 #服务器地址
    port=6379)                           #服务器端口

app.config['SESSION_USE_SIGNER'] = True   #是否强制加盐,混淆session
app.config['SECRET_KEY'] = os.urandom(24)  #如果加盐,那么必须设置的安全码,盐
app.config['SESSION_PERMANENT'] = False  #sessons是否长期有效,false,则关闭浏览器,session失效
app.config['PERMANENT_SESSION_LIFETIME'] = 3600   #session长期有效,则设定session生命周期,整数秒,默认大概不到3小时。
Session(app)


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

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

@app.route('/set/')
def set():
    arg = request.args.get('key')
    print(arg)
    session['key'] = arg
    return 'ok'


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


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


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


if __name__ == "__main__":
    app.run(debug=True)

相关文章

网友评论

      本文标题:flask应用将session存储到redis中

      本文链接:https://www.haomeiwen.com/subject/wiezvltx.html