相关疑难解决方法(0)

Flask会话忘记了请求之间的输入

我正在使用最新的Flask/Werkzeug(Flask 0.9)客户端会话来保持请求之间的信息.会话未设置为持久性(因为我很好,当浏览器关闭时cookie被删除).

我的问题如下:

我使用一些服务器端代码用条目填充Flask会话变量.在此之后,Session变量看起来像这样:

<SecureCookieSession {u'items': SOMENOTVERYIMPORTANTDICTIONARY}, '_fresh': True, 'user_id': u'1', 'csrf': '0aef1995cdf2cxx0233fdf3321d17fc7267f3b32', '_id': 'someUNIQUEcode'}*>
Run Code Online (Sandbox Code Playgroud)

我使用这些信息将一个执行GET请求的页面(通过JQuery)呈现给同一个Flask应用程序,但突然间会话中包含"items"条目的字典消失了:

<SecureCookieSession {'_fresh': True, 'user_id': u'1', 'csrf': '0aef1995cdf2cxx0233fdf3321d17fc7267f3b32', '_id': 'someUNIQUEcode'}>
Run Code Online (Sandbox Code Playgroud)

我做了一些搜索,并认为这可能与我在localhost上测试的事实有关(127.0.0.1与localhost不同).我修复了我的hosts文件并添加了一个'dev.localhost'条目,以确保所有请求都来自同一主机.

此外,我的浏览器(Chrome)的开发人员窗格显示与发送到服务器的会话cookie完全相同的标识符.

此外,设置session.modified = True没有帮助.

请求之间唯一的变化是

__utmb=122666782.18.10.1363877633
Run Code Online (Sandbox Code Playgroud)

对于第一个请求(填充items条目的请求)与第二个请求

__utmb=122666782.19.10.1363877633
Run Code Online (Sandbox Code Playgroud)

认为它仍然可能是与Ajax相关的东西.我在简单的页面重新加载后测试了会话变量的内容:该items条目仍然从会话中消失.

任何帮助将不胜感激.

python jquery session-variables session-cookies flask

8
推荐指数
1
解决办法
3450
查看次数

Flask会话成员不会跨请求持久化

我正在编写一个快速应用程序来查看一个带有一些AJAX样式调用的巨型XML文件viewgroup.我的问题session['groups']不是坚持下去.我有一些旧的阵列只有4个成员卡在某处(cookie?..).view调用时会出现该值.然后,我用最近打开的包含20多个成员的xml文件中的信息覆盖该会话成员.

但是,当viewgroup调用时,会话变量已恢复为旧值,数组中只有4个成员!

代码后跟输出.注意3个sessionStatus()电话

def sessionStatus():
    print "# of groups in session = " + str(len(session['groups']))

@app.route('/')
def index():
    cams = [file for file in os.listdir('xml/') if file.lower().endswith('xml')]
    return render_template('index.html', cam_files=cams)

@app.route('/view/<xmlfile>')
def view(xmlfile):
    path = 'xml/' + secure_filename(xmlfile)
    print 'opening ' + path
    xmlf = open(path, 'r')
    tree = etree.parse(xmlf)
    root = tree.getroot()
    p = re.compile(r'Group')
    groups = []
    for g in root:
        if (p.search(g.tag) is not None) and (g.attrib['Comment'] …
Run Code Online (Sandbox Code Playgroud)

python flask

3
推荐指数
1
解决办法
2950
查看次数