在django中测试会话变量
我遇到了Django Request.Session,在这里,我知道如何设置和测试特定的值在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'
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'可能不存在)