WTo*_*Toa 3 python django session-variables session-cookies
我有一个基于cookie的会话,我试图保存会话中存储的两个页面之间的数据,但存储在会话变量中的数据会保持休息状态.
一个例子是:
At Home page:
request.session['foo'] = []
request.session['foo'].append('bar')
print request.session['foo'] will yield ['bar']
On second page:
print request.session['foo'] will yield []
Run Code Online (Sandbox Code Playgroud)
我想知道为什么会这样?
request.session['foo'].append('bar')不会影响会话.仅request.session['...'] = .../ del request.session['...']影响会话.
请尝试以下代码.
request.session['foo'] = ['bar']
Run Code Online (Sandbox Code Playgroud)
https://docs.djangoproject.com/en/dev/topics/http/sessions/#when-sessions-are-saved
默认情况下,Django仅在会话被修改时保存到会话数据库 - 即,如果已分配或删除任何字典值:
Run Code Online (Sandbox Code Playgroud)# Session is modified. request.session['foo'] = 'bar' # Session is modified. del request.session['foo'] # Session is modified. request.session['foo'] = {} # Gotcha: Session is NOT modified, because this alters # request.session['foo'] instead of request.session. request.session['foo']['bar'] = 'baz'在上面示例的最后一种情况中,我们可以通过在会话对象上设置modified属性来明确告诉会话对象它已被修改:
Run Code Online (Sandbox Code Playgroud)request.session.modified = True...