pyramid.session¶
- SignedCookieSessionFactory(secret, cookie_name='session', max_age=None, path='/', domain=None, secure=False, httponly=False, samesite='Lax', set_on_exception=True, timeout=1200, reissue_time=0, hashalg='sha512', salt='pyramid.session.', serializer=None)[源代码]¶
配置一个 session factory 它将提供基于cookie的签名会话。此函数的返回值是 session factory ,可作为
session_factoryA的论证pyramid.config.Configurator或用作session_factory论证pyramid.config.Configurator.set_session_factory()方法。此函数返回的会话工厂将创建限制为存储少于4000字节数据的会话(因为负载必须适合单个cookie)。
参数:
secret用于对cookie签名的字符串。秘密至少应与所选哈希算法的块大小相同。为了
sha512这意味着一个512位(64个字符)的秘密。它应该在为Pyramid的各个子系统提供的一组机密值中是唯一的(请参见 反对秘密分享的告诫 )hashalg用于签名的HMAC摘要算法。算法必须由
hashlib类库。违约:'sha512'.salt避免共享机密的不同使用之间发生冲突的命名空间。强烈建议对应用程序的不同部分重复使用秘密(请参见 反对秘密分享的告诫 )违约:
'pyramid.session.'.cookie_name用于会话的cookie的名称。违约:
'session'.max_age用于会话的cookie的最大使用时间(秒)。违约:
None(浏览器范围)。path用于会话cookie的路径。违约:
'/'.domain用于会话cookie的域。违约:
None(没有域)。secure会话cookie的“安全”标志。违约:
False.httponly通过设置会话cookie的“httponly”标志,将cookie隐藏在javascript中。违约:
False.samesite会话cookie的“samesite”选项。将值设置为
None关闭Samesite选项。违约:'Lax'.timeout会话超时前处于非活动状态的秒数。如果
None那么cookie就永远不会过期。此寿命仅适用于 价值 在饼干里。也就是说,如果cookie由于max_age,则此设置无效。违约:1200.reissue_time由于访问会话而自动重新发布cookie之前必须经过的秒数。持续时间以自上次发出会话cookie后的秒数和“现在”来度量。如果该值为
0,每次访问会话的请求都将重新发布一个新的cookie。如果None那么,cookie的寿命将永远不会延长。一个好的经验法则:如果您希望基于不活动状态自动过期cookie:设置
timeout值为1200(20分钟)并设置reissue_time价值可能是timeout值(120或2分钟)。设置timeout值低于reissue_time价值,因为这张票永远不会重新发行。然而,这种配置并没有被明确地阻止。违约:
0.set_on_exception如果
True设置会话cookie,即使在呈现视图时发生异常。违约:True.serializer具有两个方法的对象:
loads和dumps。这个loads方法应接受字节并返回Python对象。这个dumps方法应接受Python对象并返回字节。一个ValueError对于格式错误的输入应引发。如果未传递序列化程序,则pyramid.session.JSONSerializer将使用串行化程序。
警告
在……里面 Pyramid 2.0默认设置
serializer选项已更改为使用pyramid.session.JSONSerializer。看见 升级会话序列化 有关进行此更改的原因的详细信息,请参阅。
- BaseCookieSessionFactory(serializer, cookie_name='session', max_age=None, path='/', domain=None, secure=False, httponly=False, samesite='Lax', timeout=1200, reissue_time=0, set_on_exception=True)[源代码]¶
配置一个 session factory 它将提供基于cookie的会话。此函数的返回值是 session factory ,可作为
session_factoryA的论证pyramid.config.Configurator或用作session_factory论证pyramid.config.Configurator.set_session_factory()方法。此函数返回的会话工厂将创建限制为存储少于4000字节数据的会话(因为负载必须适合单个cookie)。
参数:
serializer有两种方法的对象:
loads和dumps. 这个loads方法应接受字节并返回一个python对象。这个dumps方法应该接受一个python对象并返回字节。一ValueError对于格式错误的输入,应引发。cookie_name用于会话的cookie的名称。违约:
'session'.max_age用于会话的cookie的最大使用时间(秒)。违约:
None(浏览器范围)。path用于会话cookie的路径。违约:
'/'.domain用于会话cookie的域。违约:
None(没有域)。secure会话cookie的“安全”标志。违约:
False.httponly通过设置会话cookie的“httponly”标志,将cookie隐藏在javascript中。违约:
False.samesite会话cookie的“samesite”选项。将值设置为
None关闭Samesite选项。违约:'Lax'.timeout会话超时前处于非活动状态的秒数。如果
None那么cookie就永远不会过期。此寿命仅适用于 价值 在饼干里。也就是说,如果cookie由于max_age,则此设置无效。违约:1200.reissue_time由于访问会话的请求而自动重新发布cookie之前必须经过的秒数。持续时间以自上次发出会话cookie后的秒数和“现在”来度量。如果该值为
0,每次访问会话的请求都将重新发布一个新的cookie。如果None那么,cookie的寿命将永远不会延长。一个好的经验法则:如果您希望基于不活动状态自动过期cookie:设置
timeout值为1200(20分钟)并设置reissue_time价值可能是timeout值(120或2分钟)。设置timeout值低于reissue_time价值,因为这张票永远不会重新发行。然而,这种配置并没有被明确地阻止。违约:
0.set_on_exception如果
True设置会话cookie,即使在呈现视图时发生异常。违约:True.
- class PickleSerializer(protocol=5)[源代码]¶
自 2.0 版本弃用.
警告
在……里面 Pyramid 2.0默认设置
serializer选项已更改为使用pyramid.session.JSONSerializer,以及PickleSerializer已从激活的金字塔代码中删除。中的金字塔将需要JSON可序列化的对象 Pyramid 2.0版本。
请看 升级会话序列化 。
使用pickle协议将python数据转储到字节的序列化程序。
这是金字塔使用的默认序列化程序,但已被弃用。
protocol可以指定来控制所使用的pickle版本。默认为pickle.HIGHEST_PROTOCOL.