Frage

Dokumentation, und was noch wichtiger ist, würden einige Code-Beispiele sehr nützlich. Ich würde dies lieber nicht in geschützten Skripten, aber in dem Code, der geht in der modernen Pakete.

War es hilfreich?

Lösung

Mit der response.setCookie() Methode. Sie können die Antwort-Objekt über das Request-Objekt erreichen. Letztere Sie über Erwerb (self.REQUEST) erreichen kann, oder in den Ansichten von den übergebenen in Request-Objekt zugegriffen wird, in der Regel über self.request:

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

wo options Ende als zusätzliche Cookie-Parameter auf. Somit erfordert Schlüsselwort ein expires='date' ein Cookie in eine Nicht-Sitzungs-Cookie drehen, die Begrenzung der Cookie auf einen Pfad ist ein path='/somepath' Schlüsselwort zum setCookie() Methode. Die üblichen Browser-Cookie Regeln gelten hier.

ein Cookie abzulaufen bereits im Browser so einstellen, können Sie entweder ein expires='date in the past' Schlüsselwort verwenden, oder Sie können die response.expireCookie() Methode verwenden, was bedeutet das für Sie:

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

In diesem Fall können Sie immer noch Optionen sind wie die path oder andere Cookie-Flags, aber die Methode wird die max_age und expires Optionen außer Kraft setzt das Cookie, um sicherzustellen, wird vom Browser gelöscht.

Auch wenn Sie Zopes SESSION Unterstützung nutzen könnten, müssen Sie wirklich durch die Skalierbarkeit Probleme denken. Zum Beispiel müssen Sie durchdenken, wie Session-Daten werden über einen Cluster gemeinsam genutzt werden, wenn Sie ZEO oder RelStorage verwenden. Es ist allgemein bevorzugt mit SESSION ganz zu vermeiden, wenn der Skalierbarkeit wird ein Thema sein.

Andere Tipps

Um Cookies Sie RESPONSE.setCookie verwenden.

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

Das Cookie wird in dem REQUEST in der nächsten Anforderung am Ende.

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

Sie "Löschen", um das Cookie von None als Wert verwendet wird.

** Beachten Sie jedoch, dass die meisten der Zeit, wenn die Leute verwenden Cookies, um es Variablen zu speichern, die mit Sitzungen zu tun haben, und Sie können self.REQUEST.SESSION dafür verwenden, ist es einfacher.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top