gae-сеансы: семантика получения сеансов по идентификатору - PullRequest
1 голос
/ 09 ноября 2010
session = get_current_session()
a1 = session.has_key('account.logged') # is true
session2 = Session(sid=session.sid)
a2 = session2.has_key('account.logged') # is false

почему а2 не равно а1?

решение: оно должно быть сохранено в хранилище данных: Как получить текущий сеанс только с SID?

1 Ответ

1 голос
/ 09 ноября 2010

Хороший вопрос. Для извлечения сеанса по идентификатору сеанса (SID) необходимо, чтобы сеанс сохранялся на сервере (либо в memcache, либо в хранилище данных). По умолчанию gae-session only сохраняет сеанс в защищенном файле cookie на стороне клиента. Это гораздо быстрее, чем хранить его в хранилище данных или даже в memcache (см. Раздел сравнения производительности в нижней части этой статьи ).

Если вы хотите получить сеанс по SID, вы должны принудительно сохранить сеанс на сервере. Вы можете сделать это, либо отключив сеансы только для файлов cookie (рекомендуется только в том случае, если вам нужно часто получать по SID), либо принудительно сохраняя определенный сеанс на стороне сервера (передавая persist_even_if_using_cookie=True в save()). Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...