Zope and Plone에서 쿠키를 어떻게 얻고 설정합니까?
문제
문서화, 더 중요한 것은 일부 코드 예제가 매우 유용합니다. 나는 이것이 보호 된 스크립트가 아니라 현대적인 패키지로 들어가는 코드에있는 것을 선호합니다.
해결책
사용 response.setCookie()
방법. 요청 객체를 통해 응답 객체에 도달 할 수 있습니다. 후자는 획득을 통해 도달 할 수 있습니다 (self.REQUEST
), 또는 일반적으로 통과 된 요청 개체에 액세스하여보기에서 self.request
:
self.request.response.setCookie(name, value, **options)
어디 options
추가 쿠키 매개 변수로 끝납니다. 따라서 쿠키를 비 세션 쿠키로 바꾸려면 expires='date'
키워드, 쿠키를 경로로 제한하는 것은 path='/somepath'
에 대한 키워드 setCookie()
방법. 일반적인 브라우저 쿠키 규칙은 여기에 적용됩니다.
브라우저에 이미 설정된 쿠키를 만료하려면 expires='date in the past'
키워드 또는 사용할 수 있습니다 response.expireCookie()
당신을 위해 이것을하는 방법 :
self.request.response.expireCookie(name, **options)
이 경우 여전히 다음과 같은 옵션을 포함시킬 수 있습니다. path
또는 다른 쿠키 플래그이지만이 방법은 max_age
그리고 expires
브라우저에서 쿠키를 삭제하는 옵션.
Zope 's를 사용할 수 있지만 SESSION
지원, 확장 성 문제를 통해 생각해야합니다. 예를 들어 ZEO 또는 RELSTORAGE를 사용하는 경우 세션 데이터가 클러스터 전체에서 공유되는 방법을 생각해야합니다. 일반적으로 사용을 피하는 것이 바람직합니다 SESSION
확장 성이 문제가 될 경우 모두.
다른 팁
쿠키를 설정하려면 Response.setCookie를 사용합니다.
>>> self.REQUEST.RESPONSE.setCookie('cookiename', 'cookievalue', expires='Wed, 22 June 2009 12:00:00 GMT')
쿠키는 다음 요청의 요청에 따라 끝납니다.
>>> self.REQUEST['cookiename']
'cookievalue'
사용하여 쿠키를 "삭제"합니다 None
가치로.
** 그러나 사람들이 쿠키를 사용할 때 대부분의 시간은 세션과 관련된 변수를 저장하는 것이며 Self.request.session을 사용할 수 있습니다.