18

我遇到了 Django request.session;我知道如何设置和测试它的特定值。

request.session['name'] = "dummy"

我检查的地方

if request.session['name'] == "dummy" :
   #do something

但是,现在我必须首先检查是否设置了会话变量?我的意思是如何检查集合中是否存在值request.session['name']

有没有办法检查它?

4

3 回答 3

34

将其视为 Python 字典:

if 'name' in request.session:
    print request.session['name']

如何使用会话:Django 文档:如何使用会话

于 2011-05-06T10:11:32.047 回答
12

get将为您完成所有工作。检查键是否存在,如果不存在则值为None

if request.session.get('name', None) == "dummy":
    print 'name is = dummy'
于 2011-05-06T10:15:01.767 回答
0

另一种方法是将其放入try.

在这第三个示例代码片段中

如果您在一个不存在del的变量中应用操作,那么它会抛出.sessionKeyError

所以像这样检查它。

try:
    print(request.session['name'])
except KeyError:
    print('name variable is not set')
于 2018-04-19T12:12:54.120 回答