烧瓶会议不重新加载 [英] flask session not reloading

查看:141
本文介绍了烧瓶会议不重新加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

现在我正在使用Flask和烧瓶第三方库 Flask-Session



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

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

代码:

<$ p从flask.ext.session导入会话
导入会话
$ b $ app = Flask(__ name__)
sess = Session()
$ b $ nextId = 0

def verifySessionId():
global nextId

如果session中没有'userId':
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 ():
def hello():
userId = verifySessionId()
return str(userId)
$ b $ if if __name__ ==__main__:
app.config ['SECRET_KEY'] ='超级密钥'
app.config ['SESSION_TYPE'] ='文件系统'

sess.init_app(app)

app.debug = True
app.run()

Shouldn 't session ['userId]每次重新加载页面时都会被保存出去? 您需要启用cookie为会议工作。即使Flask-Session也无法在没有这些的情况下跟踪浏览器。

Flask-Session设置一个具有唯一ID的cookie,然后再由该cookie查找会话数据。 / p>

Right now I am using Flask and a flask 3rd party library Flask-Session

Using the code below, I reload the page 4 times and get the following output:

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 -

Code:

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()

Shouldn't session['userId] be 'saved out' each time I reload the page?

解决方案

You need to have cookies enabled for sessions to work. Even Flask-Session cannot track a browser without those.

Flask-Session sets a cookie with a unique id, then later on finds your session data again by that cookie.

这篇关于烧瓶会议不重新加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆