Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在django中测试会话变量_Django_Session Variables_Django Sessions - Fatal编程技术网

在django中测试会话变量

在django中测试会话变量,django,session-variables,django-sessions,Django,Session Variables,Django Sessions,我遇到了Django Request.Session,在这里,我知道如何设置和测试特定的值 request.session['name'] = "dummy" 我查了一下 if request.session['name'] == "dummy" : #do something 但是,现在我必须检查会话变量是否在一开始就设置好了?我的意思是如何检查请求中是否存在值。会话['name']已设置 有人能打电话给我吗?有办法查一下吗 提前感谢。将其视为Python字典: if 'name'

我遇到了Django Request.Session,在这里,我知道如何设置和测试特定的值

request.session['name'] = "dummy"
我查了一下

if request.session['name'] == "dummy" :
   #do something
但是,现在我必须检查会话变量是否在一开始就设置好了?我的意思是如何检查
请求中是否存在值。会话['name']已设置

有人能打电话给我吗?有办法查一下吗


提前感谢。

将其视为Python字典:

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

如何使用会话:

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

if request.session.get('name', None) == "dummy":
    print 'name is = dummy'

另一种方法是将其放入
try

如果在
会话
变量中应用
del
操作,则该变量不存在,因此会抛出
KeyError

所以像这样检查它

try:
    print(request.session['name'])
except KeyError:
    print('name variable is not set')

Python区分大小写。Django没有
Request
Session
,它有
Request.Session
.Request.Session.get('name')应该足够。在许多情况下,您不知道会话中的值是什么,例如一些令牌、登录会话等(这是关于将其等同于固定字符串“dummy”的方式)与公认的答案相比,这是一个更干净的解决方案。相关问题。如果会话变量中有另一个字典,例如{'b':{'z':100},我是否需要使用多个If语句?假设变量可能不存在(因此在前面的示例中,'b'和'z'可能不存在)