【9.0】Flask框架之flask-session

发布时间 2023-08-26 21:47:26作者: Chimengmeng

【一】引入

  • flask 自带session---》以cookie的形式放到了浏览器中---》加密
  • 真正的session,是在服务端存储
    • django中存在djangosession表中
    • flask中,使用第三方,保存在---》redis中---》flask-session
  • flask能不能用jwt
    • 可以

【二】安装

【1】安装

pip3 install flask-session

【2】高版本兼容性

  • 用高版本:在app中放一个参数
app.session_cookie_name='session'

【三】使用

【1】使用方式一

from flask_session import RedisSessionInterface
app.session_cookie_name='session'
# 动态替换:把原来的session对象换成放到redis的session对象
# 可以使用自己的Redis链接
# redis : Redis 连接对象
# key_prefix : key 前缀
app.session_interface=RedisSessionInterface(redis=None,key_prefix='lqz')  
# 4 以后再使用session,就会存到redis中了

# 赋值
session['key']=value

# 取值
session.get()
import uuid
from flask import Flask, g, request, session
from flask_session import RedisSessionInterface
from redis import Redis

app = Flask(__name__)
app.debug = True
app.session_cookie_name = 'session'
conn_redis = Redis(host="localhost", port=6379)

# 动态替换:把原来的session对象换成放到redis的session对象
# 以后再使用session,就会存到redis中了
# 可以使用自己的Redis链接
# redis : Redis 连接对象
# key_prefix : key 前缀
# app.session_interface = RedisSessionInterface(redis=conn_redis, key_prefix='dream')
app.session_interface = RedisSessionInterface(redis=None, key_prefix='dream')


@app.route('/', methods=['GET', 'POST'])
def index():
    session['serret'] = uuid.uuid4()
    return 'index'


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

【2】使用方式二

from redis import Redis
from flask_session import Session
app.session_cookie_name = 'session'
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_REDIS'] = Redis(host='127.0.0.1',port='6379')
Session(app)
import uuid
from flask_session import Session
from flask import Flask, g, request, session
from flask_session import RedisSessionInterface
from redis import Redis

app = Flask(__name__)
app.debug = True
app.session_cookie_name = 'session'
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_REDIS'] = Redis(host='127.0.0.1',port='6379')
Session(app)

@app.route('/', methods=['GET', 'POST'])
def index():
    session['serret'] = uuid.uuid4()
    return 'index'


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