Question

La documentation, et plus important encore, quelques exemples de code seraient très utiles. Je préférerais que cela ne soit pas dans des scripts protégés, mais dans le code des packages modernes.

Était-ce utile?

La solution

Utilisez la méthode response.setCookie () . Vous pouvez atteindre l'objet de réponse via l'objet de requête. Vous pouvez accéder à ce dernier via acquisition ( self.REQUEST ) ou dans des vues en accédant à l'objet de requête transmis, généralement via self.request :

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

options se retrouvent sous forme de paramètres de cookie supplémentaires. Ainsi, transformer un cookie en cookie de session nécessite un mot clé expires = 'date' , limiter le cookie à un chemin est un mot clé path = '/ somepath' la méthode setCookie () . Les règles habituelles sur les cookies du navigateur s'appliquent ici.

Pour expirer un cookie déjà défini dans le navigateur, vous pouvez utiliser un mot clé expires = 'date dans le passé' ou utiliser le response.expireCookie () méthode, qui le fait pour vous:

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

Dans ce cas, vous pouvez toujours inclure des options comme le chemin ou d'autres indicateurs de cookie, mais la méthode remplacera les options max_age et expires . pour vous assurer que le cookie est supprimé par le navigateur.

Bien que vous puissiez utiliser le support SESSION de Zope, vous devez vraiment réfléchir aux problèmes d'évolutivité. Par exemple, vous devez réfléchir à la manière dont les données de session seront partagées sur un cluster si vous utilisez ZEO ou RelStorage. Il est généralement préférable d'éviter d'utiliser SESSION si l'évolutivité pose problème.

Autres conseils

Pour définir les cookies, utilisez RESPONSE.setCookie.

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

Le cookie se retrouvera dans la demande lors de la prochaine demande.

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

Vous " supprimer " le cookie en utilisant None comme valeur.

** Notez cependant que, dans la plupart des cas, les gens utilisent des cookies pour stocker des variables relatives aux sessions. Vous pouvez également utiliser self.REQUEST.SESSION pour cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top