简单的服务器端Flask会话变量

问题描述:

在Flask中使用服务器端会话变量最简单的方法是什么?简单的服务器端Flask会话变量

变量值:

  1. 一个简单的字符串
  2. 不可见的客户端(浏览器)
  3. 不持久化到数据库 - 简单地消失在会话不见了

有一个内置瓶会话,但它的会话数据发送到客户端:

session["secret"] = "I can see you" 

的数据base64编码和加密签名的cookie发送,但它仍然是微不足道的阅读客户端。

在许多框架,创建服务器端会话变量是一个一行,如:

session.secret = "You can't see this" 

烧瓶解决方案,我发现到目前为止是相当繁琐和对处理大量的数据减速。有没有简单的轻量级解决方案?

+2

http://flask.pocoo.org/snippets/132/除了跳过保存到磁盘。 – pvg

+0

请向您的客户发送数据说明您的问题。几乎每个框架都使用cookie来拥有会话标识符/令牌。然后会话标识符可用于查找存储在本地数据库中的其他会话数据。这是你想要做的吗? – TheGreatContini

+0

@TheGreatContini谷歌*“服务器端会话变量”*,并有成千上万的相关结果。只要** appservers **已存在,会话变量就已经存在。根据下面的答案,Flask有一个支持会话变量的插件。并非所有的瞬态数据都需要存储在本地数据库中。 –

我认为Flask-Session扩展是您正在寻找。

Flask-Session是Flask的扩展,它为您的应用程序添加了对服务器端会话的支持。

从链接的网站:

from flask import Flask, session 
from flask.ext.session import Session 

app = Flask(__name__) 
# Check Configuration section for more details 
SESSION_TYPE = 'redis' 
app.config.from_object(__name__) 
Session(app) 

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

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