Тестирование переменной сеанса в Django - PullRequest
14 голосов
/ 06 мая 2011

Я столкнулся с Django Request.Session, где я знаю, как установить и протестировать его для определенного значения.

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

и где-то я проверяю

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

Но теперь я должен проверить, была ли вообще задана переменная сеанса? Я имею в виду, как я могу проверить, существует ли значение в Request.Session['name'] Is set?

Пожалуйста, кто-нибудь может мне сказать, есть ли способ проверить это?

Заранее спасибо.

Ответы [ 3 ]

23 голосов
/ 06 мая 2011

Рассматривайте это как словарь Python:

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

Как использовать сессии: http://docs.djangoproject.com/en/dev/topics/http/sessions/

10 голосов
/ 06 мая 2011

get сделает всю работу за вас. Проверьте, существует ли ключ, если нет, то значение равно None

if request.session.get('name', None) == "dummy":
    print 'name is = dummy'
0 голосов
/ 19 апреля 2018

Другой способ сделать это - поместить его в try.

В этом третьем примере фрагмент кода

, если вы примените операцию del вsession переменная, которой не существует, поэтому она выдает KeyError.

, поэтому проверьте это следующим образом.

try:
    print(request.session['name'])
except KeyError:
    print('name variable is not set')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...