12

ドキュメント、さらに重要なことに、いくつかのコード例は非常に役立ちます。これは、保護されたスクリプトではなく、最新のパッケージに含まれるコードに含めることをお勧めします。

4

2 に答える 2

20

メソッドを使用しresponse.setCookie()ます。request オブジェクトを介して response オブジェクトに到達できます。後者には取得 ( ) を介して到達するself.REQUESTか、通常は を介し​​て、渡されたリクエスト オブジェクトにアクセスすることでビューに到達できself.requestます。

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

追加のoptionsCookie パラメータとして終了します。したがって、Cookie を非セッション Cookie に変換するにはexpires='date'キーワードが必要であり、Cookie をパスに制限することはメソッドのpath='/somepath'キーワードです。setCookie()ここでは、通常のブラウザ Cookie ルールが適用されます。

ブラウザーに既に設定されている Cookie を期限切れにするには、expires='date in the past'キーワードを使用するか、次のresponse.expireCookie()メソッドを使用してこれを行います。

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

この場合、またはその他の Cookie フラグなどのオプションを引き続き含めることができますが、メソッドは、およびオプションをpathオーバーライドして、ブラウザーによって Cookie が確実に削除されるようにします。max_ageexpires

Zope のサポートを利用することもできますがSESSION、実際にはスケーラビリティの問題についてよく考える必要があります。たとえば、ZEO や RelStorage を使用する場合、クラスター全体でセッション データを共有する方法を検討する必要があります。スケーラビリティが問題になる場合は、一般に、SESSION完全に使用しないことをお勧めします。

于 2009-06-24T14:01:18.077 に答える
6

Cookie を設定するには、RESPONSE.setCookie を使用します。

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

Cookie は、次のリクエストの REQUEST に含まれます。

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

値として使用して、Cookie を「削除」しNoneます。

**ただし、ほとんどの場合、Cookie を使用するのはセッションに関係する変数を格納するためであり、それには self.REQUEST.SESSION を使用できます。より簡単です。

于 2009-06-23T18:45:44.063 に答える