【问题标题】:flask session not reloading烧瓶会话未重新加载
【发布时间】:2014-11-22 17:43:11
【问题描述】:

现在我正在使用 Flask 和烧瓶 3rd 方库 Flask-Session

使用下面的代码,我重新加载页面 4 次并得到以下输出:

set userid[0]
127.0.0.1 - - [27/Sep/2014 22:28:35] "GET / HTTP/1.1" 200 -
set userid[1]
127.0.0.1 - - [27/Sep/2014 22:28:37] "GET / HTTP/1.1" 200 -
set userid[2]
127.0.0.1 - - [27/Sep/2014 22:28:37] "GET / HTTP/1.1" 200 -
set userid[3]
127.0.0.1 - - [27/Sep/2014 22:28:38] "GET / HTTP/1.1" 200 -

代码:

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

app = Flask(__name__)
sess = Session()

nextId = 0

def verifySessionId():
    global nextId

    if not 'userId' in session:
        session['userId'] = nextId
        nextId += 1
        sessionId = session['userId']
        print ("set userid[" + str(session['userId']) + "]")
    else:
        print ("using already set userid[" + str(session['userId']) + "]")
    sessionId = session.get('userId', None)
    return sessionId

@app.route("/")
def hello():
    userId = verifySessionId()
    return str(userId)

if __name__ == "__main__":
    app.config['SECRET_KEY'] = 'super secret key'
    app.config['SESSION_TYPE'] = 'filesystem'

    sess.init_app(app)

    app.debug = True
    app.run()

每次重新加载页面时,会话['userId] 不应该被“保存”吗?

【问题讨论】:

  • 是否启用了cookies?会话 ID 保存在 cookie 中,与文件系统存储相关。
  • @MartijnPieters 是的……这就是问题所在。好几天了,感谢您的帮助。

标签: python session flask


【解决方案1】:

您需要启用 cookie 才能使会话正常工作。没有这些,即使 Flask-Session 也无法跟踪浏览器。

Flask-Session 设置一个具有唯一 id 的 cookie,然后稍后通过该 cookie 再次找到您的会话数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    相关资源
    最近更新 更多