Flask之Flask-Session -- 2019-08-11 19:38:31

Posted gqy02

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask之Flask-Session -- 2019-08-11 19:38:31相关的知识,希望对你有一定的参考价值。

原文: http://106.13.73.98/__/119/

Flask太小了,没有地方装数据??,以至于内置的session数据都被存在客户端的Cookie中。

所以Flask-Session出来了,它会将session数据存入数据库中。

下面我们将使用Flask-Session将session数据存入redis数据库中。

先下载:
pip install Flask-Session

代码如下:

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

app = Flask(__name__)  # type:Flask

# 添加键值对,用于指定使用redis存储session
app.config['SESSION_TYPE'] = 'redis'

# 指定redis连接
app.config['SESSION_REDIS'] = Redis('127.0.0.1', 6379, db=7)
# db=7:表示使用数据库7,redis默认有16个数据库
# 可在redis-cli中使用 select [0-15] 切换,各个数据库中的数据是独立的

# 替换Flask原有的session机制
Session(app)


@app.route('/<xx>', methods='GET', 'POST')
def test(xx):
    # 存储session到redis中
    session['key'] = xx
    # 取出session数据
     print(session.get('key'))
    return xx * 10000


app.run(debug=True)


"""
存入redis中的key是这种形式的的:"session:857a3c6d-e4fe-42b7-af91-5e6d05a8fdab"
存入redis中的key,是客户端cookie中存的key和value的拼接
而存入的value则是二进制类型
"""

启动脚本,打开浏览器访问:
技术图片
此时,已成功将session数据存入数据库,进入redis查看:

# 我们使用的数据库7,别忘记了切换至数据库7
127.0.0.1:6379[7]> select 7  
OK

127.0.0.1:6379[7]> keys *
1) "session:8a6f1b03-2cde-4847-b16a-f1de50bf7ab5"

127.0.0.1:6379[7]> get "session:8a6f1b03-2cde-4847-b16a-f1de50bf7ab5"
"\x80\x03q\x00(X\n\x00\x00\x00_permanentq\x01\x88X\x03\x00\x00\x00keyq\x02X\x04\x00\x00\x00\xf0\x9f\x98\x82q\x03u."

原文: http://106.13.73.98/__/119/

以上是关于Flask之Flask-Session -- 2019-08-11 19:38:31的主要内容,如果未能解决你的问题,请参考以下文章

Flask之flask-session

Flask之flask-session

Flask之Flask-Session -- 2019-08-11 19:38:31

flask之wtform与flask-session组件

使用 Flask-Session 扩展,未在烧瓶会话中设置密钥

flask之三方组件