ドキュメントさらに重要なことに、いくつかのコード例は非常に便利です。私は保護されたスクリプトではなく、現代のパッケージに入るコードでこれを好むでしょう。ZopeとPloneでCookieを取得して設定するにはどうすればよいですか?
答えて
response.setCookie()
メソッドを使用します。リクエストオブジェクトを介してレスポンスオブジェクトにアクセスできます。 options
は、などの追加クッキーのパラメータを終わる
self.request.response.setCookie(name, value, **options)
:後者は、あなたが取得(self.REQUEST
)を介して、またはビューに通常self.request
を経由して渡されたリクエスト・オブジェクトにアクセスすることで到達することができます。したがって、クッキーをセッション以外のクッキーに変換するには、expires='date'
キーワードが必要です。クッキーをパスに限定するには、キーワードがsetCookie()
メソッドに限定されています。通常のブラウザのクッキールールがここに適用されます。
は、すでにブラウザに設定されたCookieを期限切れにするには、expires='date in the past'
キーワードを使用することができますか、あなたはあなたのためにこれを行いresponse.expireCookie()
方法、使用することができます:あなたはまだ含めることができる。この場合、
self.request.response.expireCookie(name, **options)
をpath
や他のCookieフラグのようなオプションがありますが、このメソッドはmax_age
とexpires
のオプションを上書きして、ブラウザによってCookieが確実に削除されるようにします。
ZopeのSESSION
サポートを使用することもできますが、スケーラビリティの問題を考える必要があります。たとえば、ZEOまたはRelStorageを使用する場合、セッションデータをクラスタ全体で共有する方法を考える必要があります。スケーラビリティが問題になる場合は、一般的にはSESSION
を使用しないことをお勧めします。
クッキーを設定するには、RESPONSE.setCookieを使用します。
>>> self.REQUEST.RESPONSE.setCookie('cookiename', 'cookievalue', expires='Wed, 22 June 2009 12:00:00 GMT')
クッキーは、次のリクエストでREQUESTで終了します。
>>> self.REQUEST['cookiename']
'cookievalue'
あなたは値としてNone
を使用することにより、クッキーを「削除します」。
**しかし、人々がクッキーを使うとき、それはセッションと関係がある変数を保存するためのものであり、そのためにself.REQUEST.SESSIONを使うことができます。
この返答いただきありがとうございます! zopeアプリケーションごとに3〜4つのインスタンスを実行するので、どのインスタンスが当てはまるか心配する必要はありません。 – pydanny