题
文档,更重要的是,一些代码示例非常有用。我希望这不是在受保护的脚本中,而是在进入现代包的代码中。
解决方案
使用 response.setCookie()
方法。您可以通过请求对象访问响应对象。后者可以通过获取( self.REQUEST
)或通过访问传入的请求对象在视图中访问,通常通过 self.request
:
self.request.response.setCookie(name, value, **options)
其中 options
最终作为额外的cookie参数。因此,将cookie转换为非会话cookie需要 expires ='date'
关键字,将cookie限制为路径是 path ='/ somepath'
关键字 setCookie()
方法。通常的浏览器cookie规则适用于此。
要使已在浏览器中设置的Cookie失效,您可以使用过去的 ='>日期中的
expires ='日期,也可以使用
response.expireCookie()代码>方法,它为您执行此操作:
self.request.response.expireCookie(name, **options)
在这种情况下,您仍然可以包含 path
或其他cookie标记等选项,但该方法将覆盖 max_age
和 expires
选项确保浏览器删除cookie。
虽然您可以使用Zope的 SESSION
支持,但您确实需要考虑可伸缩性问题。例如,如果使用ZEO或RelStorage,则需要考虑如何在群集中共享会话数据。如果可伸缩性成为一个问题,通常最好避免完全使用 SESSION
。
其他提示
要设置Cookie,请使用RESPONSE.setCookie。
>>> self.REQUEST.RESPONSE.setCookie('cookiename', 'cookievalue', expires='Wed, 22 June 2009 12:00:00 GMT')
cookie将在下一个请求中的REQUEST中结束。
>>> self.REQUEST['cookiename']
'cookievalue'
你“删除”使用 None
作为值。
**请注意,大多数时候人们使用cookies来存储与会话有关的变量,你可以使用self.REQUEST.SESSION,这样更容易。
不隶属于 StackOverflow