首页 > 解决方案 > 烧瓶不存储会话(缓存)

问题描述

我有一个使用 Flask 构建的 Python 项目,并且我用谷歌浏览器测试显示页面。今天无故会话和闪烁停止正常工作(对象不保存)。但在其他浏览器或 chrom 隐身模式下,它仍然可以正常工作。我能找到的唯一区别是 request.headers['cookie']:

在铬:tabstyle=raw-tab; csrftoken=...; _ga=GA1.1.xx;订单=...

在其他浏览器和隐身模式下: session=...

可能是什么原因?这是某种缓存问题吗?

我的代码:

应用程序.py

app = Flask(__name__)
app.secret_key = os.urandom(16)

视图.py

@app.route('/add_item/<string:item_id>')
def add_item(item_id):
    item = get_item()[item_id]
    session.setdefault('container', {})
    session['container'].setdefault(item_id, item.copy())
    session['container'][item_id].setdefault('quantity', 0)
    session['container'][item_id]['quantity'] += 1
    session.modified = True
    return redirect(url_for('container'))


@app.route('/container')
def container():
    if 'container' in session:
        return render_template('container.html', item=session['container'])
    else:
        flash('It is empty!', category='danger')
        return redirect(url_for('catalog'))

标签: pythongoogle-chromecachingflask

解决方案


不幸的是,我找不到将这些 cookie 添加到 chrome 中的每个请求的原因。但是如果你有同样的问题,你可以像我一样删除它,一切都会好起来的。

按 F12 -> 应用程序 -> 存储 -> Cookies -> 本地主机 -> 全部清除。

在此处输入图像描述


推荐阅读