tec*_*onk 10 python session flask
使用下面的应用程序和Flask 0.11.1,我导航到与以下函数调用关联的路由,给定结果:
from flask import Flask, session
app = 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()
Run Code Online (Sandbox Code Playgroud)
这个问题与这个问题的主题类似,这个和这一个,但是我设置了密钥而不是重新生成它,我的变量肯定不会超过cookie允许的4096字节.也许我错过了一些关于Flask会话变量的基本理解?
Rob*_*obᵩ 13
来自doc:
请注意,对可变结构的修改不会自动获取,在这种情况下,您必须自己明确设置[
modified属性]True.
尝试:
session['list'].remove(str(id))
session.modified = True
Run Code Online (Sandbox Code Playgroud)
Flask使用CallbackDict来跟踪会话的修改.
它只会在您设置或删除密钥时注册修改.在这里,您可以修改它不会检测到的值.试试这个:
@app.route('/r/<int:id>')
def remove(id):
val = session['list']
val.remove(str(id))
session['list'] = val
return ",".join(session['list'])
Run Code Online (Sandbox Code Playgroud)
...和其他更改相同,或者您可能尝试设置__CODE__自己而不是触发检测.
| 归档时间: |
|
| 查看次数: |
8026 次 |
| 最近记录: |