在Zope和Plone中如何获取和设置饼干?

在Zope和Plone中如何获取和设置饼干?,plone,zope,Plone,Zope,文档,更重要的是,一些代码示例将非常有用。我希望这不是在受保护的脚本中,而是在现代软件包中的代码中。要设置cookie,请使用RESPONSE.setCookie >>> self.REQUEST.RESPONSE.setCookie('cookiename', 'cookievalue', expires='Wed, 22 June 2009 12:00:00 GMT') cookie将在下一个请求的请求中结束 >>> self.REQUEST['cook

文档,更重要的是,一些代码示例将非常有用。我希望这不是在受保护的脚本中,而是在现代软件包中的代码中。

要设置cookie,请使用RESPONSE.setCookie

>>> self.REQUEST.RESPONSE.setCookie('cookiename', 'cookievalue', expires='Wed, 22 June 2009 12:00:00 GMT')
cookie将在下一个请求的请求中结束

>>> self.REQUEST['cookiename']
'cookievalue'
您可以使用
None
作为值来“删除”cookie


**不过,请注意,大多数情况下,人们使用cookie是为了存储与会话有关的变量,而您可以使用self.REQUEST.SESSION,这样做更简单。

使用
response.setCookie()
方法。您可以通过请求对象访问响应对象。后者可以通过采集(
self.REQUEST
)或通过访问传入的请求对象(通常通过
self.REQUEST
)在视图中访问:

self.request.response.setCookie(name, value, **options)
其中,
选项
作为额外的cookie参数结束。因此,将cookie转换为非会话cookie需要一个
expires='date'
关键字,将cookie限制为路径是
path='/somepath'
关键字到
setCookie()
方法。通常的浏览器cookie规则适用于此处

要使浏览器中已设置的cookie过期,可以使用
expires='date in the pass'
关键字,也可以使用
response.expireCookie()
方法,该方法为您执行以下操作:

self.request.response.expireCookie(name, **options)
在这种情况下,您仍然可以包括
路径
或其他cookie标志等选项,但该方法将覆盖
最大年龄
过期
选项,以确保浏览器删除cookie


尽管您可以使用Zope的
会话
支持,但您确实需要考虑可伸缩性问题。例如,如果使用ZEO或RelStorage,您需要考虑如何在集群间共享会话数据。如果可伸缩性将成为一个问题,通常最好避免使用
会话

感谢您的回复!我们在每个zope应用程序中运行3-4个实例,因此不必担心我们将访问哪个实例是一件非常好的事情。