我在flask应用中使用了flask-login,请问如何把session放到redis里实现session共享?请给出示例
时间: 2024-02-03 18:15:47 浏览: 117
Flask之flask-session的具体使用
要实现把session放到redis里实现session共享,可以使用Flask-Session插件。Flask-Session默认使用cookie存储session,但是也可以使用redis存储session。
首先需要安装Flask-Session以及redis-py库:
```
pip install Flask-Session redis
```
然后在Flask应用中初始化Flask-Session:
```python
from flask_session import Session
from redis import StrictRedis
app = Flask(__name__)
# 设置session存储为redis
redis_store = StrictRedis(host='localhost', port=6379, db=0)
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_REDIS'] = redis_store
# 初始化Flask-Session
Session(app)
```
上面的代码中,我们先创建了一个redis连接对象`redis_store`,然后将`SESSION_TYPE`设置为`redis`,将`SESSION_REDIS`设置为`redis_store`,最后初始化`Session`对象。
接着,我们可以在Flask路由中使用session:
```python
from flask import session
@app.route('/')
def index():
# 设置session
session['username'] = 'John'
# 获取session
username = session.get('username', None)
return 'Hello, {}!'.format(username)
```
上面的代码中,我们首先在`/`路由中设置了一个session变量`username`,然后在下一行获取了该session变量的值。`session.get()`方法可以接收一个默认值参数,如果session中不存在该变量,则返回该默认值。
至此,我们已经成功地将session存储到redis中,实现了session共享。
阅读全文