Pergunta

Documentação, e mais importante, alguns exemplos de código seria muito útil. Eu preferiria isso a não ser em scripts protegidos, mas no código que entra em pacotes modernos.

Foi útil?

Solução

Use o método response.setCookie(). Você pode alcançar o objeto de resposta através do objeto do pedido. Este último pode chegar através de aquisição (self.REQUEST), ou em vistas acedendo ao passado-in pedido objeto, geralmente através self.request:

self.request.response.setCookie(name, value, **options)

onde options acabar como parâmetros do cookie extra. Assim, transformando um biscoito em um cookie de sessão não requer uma palavra-chave expires='date', limitando o cookie de um caminho é um path='/somepath' palavra-chave para o método setCookie(). As regras de cookies do navegador habitual aplicar aqui.

Para expirar um cookie já definido no navegador, você pode usar uma palavra-chave expires='date in the past', ou você pode usar o método response.expireCookie(), que faz isso para você:

self.request.response.expireCookie(name, **options)

Neste caso, você ainda pode incluir opções como o path ou outras bandeiras de cookies, mas o método irá substituir as opções max_age e expires para garantir o cookie é apagado pelo navegador.

Embora você poderia usar o suporte SESSION do Zope, você realmente precisa pensar sobre os problemas de escalabilidade. Por exemplo, você precisa pensar em como os dados da sessão serão compartilhadas através de um cluster se você usar ZEO ou RelStorage. Em geral, é preferível evitar o uso SESSION completamente se escalabilidade vai ser um problema.

Outras dicas

Para biscoitos set você usa RESPONSE.setCookie.

>>> self.REQUEST.RESPONSE.setCookie('cookiename', 'cookievalue', expires='Wed, 22 June 2009 12:00:00 GMT')

O cookie vai acabar na solicitação na próxima solicitação.

>>> self.REQUEST['cookiename']
'cookievalue'

Você "apagar" o cookie usando None como um valor.

** Note, porém, que na maioria das vezes, quando as pessoas usam cookies é para armazenar variáveis ??que têm a ver com as sessões, e você pode usar self.REQUEST.SESSION para isso, é mais fácil.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top