Domanda

Documentazione e, soprattutto, alcuni esempi di codice sarebbero molto utili. Preferirei che questo non fosse negli script protetti, ma nel codice che va nei pacchetti moderni.

È stato utile?

Soluzione

Utilizza il metodo response.setCookie () . È possibile raggiungere l'oggetto risposta tramite l'oggetto richiesta. Quest'ultimo è raggiungibile tramite acquisizione ( self.REQUEST ) o nelle viste accedendo all'oggetto della richiesta passata, di solito tramite self.request :

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

dove opzioni finiscono come parametri cookie extra. Pertanto, la trasformazione di un cookie in un cookie non di sessione richiede una parola chiave expires = 'date' , la limitazione del cookie a un percorso è una parola chiave path = '/ somepath' a il metodo setCookie () . Qui si applicano le solite regole sui cookie del browser.

Per far scadere un cookie già impostato nel browser, è possibile utilizzare una parola chiave expires = 'date in passato' oppure utilizzare response.expireCookie () metodo, che fa questo per te:

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

In questo caso puoi comunque includere opzioni come il percorso o altri flag cookie, ma il metodo sovrascriverà le opzioni max_age e scade per garantire che il cookie venga eliminato dal browser.

Sebbene tu possa usare il supporto SESSION di Zope, devi davvero riflettere sui problemi di scalabilità. Ad esempio, è necessario riflettere su come i dati della sessione verranno condivisi su un cluster se si utilizza ZEO o RelStorage. È generalmente preferibile evitare di usare SESSION se la scalabilità sarà un problema.

Altri suggerimenti

Per impostare i cookie si utilizza RESPONSE.setCookie.

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

Il cookie finirà nella RICHIESTA nella prossima richiesta.

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

Tu " elimina " il cookie utilizzando Nessuno come valore.

** Nota, tuttavia, che la maggior parte delle volte in cui le persone usano i cookie è per memorizzare variabili che hanno a che fare con le sessioni, e puoi usare self.REQUEST.SESSION per questo, è più facile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top