python – Flask会话变量在请求之间不存在

python – Flask会话变量在请求之间不存在,第1张

概述使用下面的应用程序和Flask 0.11.1,我导航到与以下函数调用关联的路由,给定结果: > create():’1,2,3’#OK >删除(1):’2,3’#OK >删除(2):’1,3’#expected’3′ > maintain():’1,2,3’#expected’1,3’或’3′ from flask import Flask, sessionapp = Flask(__name 使用下面的应用程序和Flask 0.11.1,我导航到与以下函数调用关联的路由,给定结果:

> create():’1,2,3’#OK
>删除(1):’2,3’#OK
>删除(2):’1,3’#expected’3′
> maintain():’1,3’#expected’1,3’或’3′

from flask import Flask,sessionapp = Flask(__name__)@app.route('/')def create():    session['List'] = ['1','2','3']    return ",".join(session['List'])@app.route('/m')def maintain():    return ",".join(session['List'])@app.route('/r/<int:ID>')def remove(ID):    session['List'].remove(str(ID))    return ",".join(session['List'])if __name__ == '__main__':    app.secret_key = "123"    app.run()

这个问题在主题上类似于this question,this和this one,但是我设置了密钥而没有重新生成它,我的变量肯定不大于cookie允许的4096字节.也许我错过了一些关于Flask会话变量的基本理解?

解决方法 Flask使用 CallbackDict来跟踪会话的修改.

它只会在您设置或删除密钥时注册修改.在这里,您可以修改它不会检测到的值.试试这个:

@app.route('/r/<int:ID>')def remove(ID):    val = session['List']    val.remove(str(ID))    session['List'] = val    return ",".join(session['List'])

…和其他更改相同,或者您可能尝试自己设置session.modifIEd = True而不是触发检测.

总结

以上是内存溢出为你收集整理的python – Flask会话变量在请求之间不存在全部内容,希望文章能够帮你解决python – Flask会话变量在请求之间不存在所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1207053.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存