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)[源代码]

1.5 新版功能.

配置一个 session factory 它将提供基于cookie的签名会话。此函数的返回值是 session factory ,可作为 session_factory A的论证 pyramid.config.Configurator 或用作 session_factory 论证 pyramid.config.Configurator.set_session_factory() 方法。

此函数返回的会话工厂将创建限制为存储少于4000字节数据的会话(因为负载必须适合单个cookie)。

参数:

secret
用于对cookie签名的字符串。秘密至少应与所选哈希算法的块大小相同。为了 sha512 这意味着一个512位(64个字符)的秘密。它应该在为金字塔的各个子系统提供的一组机密值中是唯一的(请参见 反对秘密分享的告诫
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
有两种方法的对象: loadsdumps . 这个 loads 方法应接受字节并返回一个python对象。这个 dumps 方法应该接受一个python对象并返回字节。一 ValueError 对于格式错误的输入,应引发。如果未传递序列化程序,则 pyramid.session.PickleSerializer 将使用序列化程序。

警告

Pyramid 2违约 serializer 选项将更改为使用 pyramid.session.JSONSerializer . 见 金字塔2.0中Isession的更改 有关进行此更改的原因的详细信息。

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_factory A的论证 pyramid.config.Configurator 或用作 session_factory 论证 pyramid.config.Configurator.set_session_factory() 方法。

此函数返回的会话工厂将创建限制为存储少于4000字节数据的会话(因为负载必须适合单个cookie)。

参数:

serializer
有两种方法的对象: loadsdumps . 这个 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 JSONSerializer[源代码]

使用的序列化程序 json.dumps ‘和 json.loads

class PickleSerializer(protocol=4)[源代码]

使用pickle协议将python数据转储到字节的序列化程序。

这是金字塔使用的默认序列化程序。

protocol 可以指定来控制所使用的pickle版本。默认为 pickle.HIGHEST_PROTOCOL .