Используйте метод response.setCookie()
. Вы можете добраться до объекта ответа через объект запроса. Последнее можно получить с помощью сбора (self.REQUEST
) или в представлениях путем доступа к переданному объекту запроса, обычно через self.request
:
self.request.response.setCookie(name, value, **options)
, где options
заканчивается как дополнительные параметры cookie. Таким образом, для преобразования куки-файла в несессионный cookie-файл требуется ключевое слово expires='date'
, ограничение cookie-пути - это ключевое слово path='/somepath'
для метода setCookie()
. Здесь действуют обычные правила для файлов cookie браузера.
Чтобы удалить файл cookie, уже установленный в браузере, вы можете использовать ключевое слово expires='date in the past'
или метод response.expireCookie()
, который сделает это за вас:
self.request.response.expireCookie(name, **options)
В этом случае вы все равно можете включить параметры, такие как path
или другие флаги cookie, но метод переопределит параметры max_age
и expires
, чтобы гарантировать удаление куки браузером.
Хотя вы можете использовать поддержку SESSION
в Zope, вам действительно нужно продумать проблемы масштабируемости. Например, вам нужно продумать, как данные сеанса будут распределяться по кластеру, если вы используете ZEO или RelStorage. Обычно предпочтительнее избегать использования SESSION
, если масштабируемость будет проблемой.