zc wsgi会话

zc.wsgisessions的Python项目详细描述


详细文档

会话

会话支持有两个方面:浏览器标识, 和会话存储。浏览器使用cookie进行标识;如果 未对传入请求设置cookie,响应将为将来设置cookie 请求。

会话数据使用持久会话数据容器存储,如 由 zope.session 包定义。实例被添加到 启动时数据库(如果不存在)。我们可以控制某些参数 通过将关键字参数传递给数据库初始值设定项。一跑 此测试使用默认设置,而第二个运行设置自定义 参数。

< Buff行情>
>>> import re
>>> import zc.wsgisessions.testing
>>> import zc.wsgisessions.sessions
>>> db_name = 'sessions'
>>> if zc.wsgisessions.testing.TEST_DB_INIT:
...     db_name = 'test'
...     db = conn.get_connection(db_name).db()
...     zc.wsgisessions.sessions.initialize_database(
...         db,
...         db_name=db_name,
...         namespace='browserid_c0defeed',
...         secret='0.10612221415937506119',
...         timeout=(15 * 60),  # 15 minutes
...         resolution=60,      #  1 minute
...         )
[filter:sessions]
use = egg:zc.wsgisessions
0
[filter:sessions]
use = egg:zc.wsgisessions
1

如果配置包含设置为true的安全 https, secure 被添加到set cookie响应中。此外,httponly是 添加到set cookie响应,除非配置设置了 仅限http 为false。

< Buff行情>
[filter:sessions]
use = egg:zc.wsgisessions
2

在过滤器配置中更改设置时(在 .ini 文件),将替换默认值。

< Buff行情>
[filter:sessions]
use = egg:zc.wsgisessions
3

注意,上面的url方案是 而不是 https,但是设置了secure 因为它是在筛选器配置中请求的。

对于硒测试,我们需要重置httponly,因为我们正在使用 开发中的http url方案, secure (off)的默认值是 可以接受。注意,我们只在global中设置http 这次配置以覆盖中设置的值 .ini 文件。

< Buff行情>
[filter:sessions]
use = egg:zc.wsgisessions
4

会话存储的数据库名在初始化数据库中设置为 会话 默认情况下,或提供给数据库名( 测试 第二次 运行这些测试)。如果我们试图将错误的数据库名称传递给 从配置中筛选(在 .ini 文件中),我们将得到一个错误。

< Buff行情>
[filter:sessions]
use = egg:zc.wsgisessions
5

浏览器标识

支持cookies所需的信息也存储在 数据库:

< Buff行情>
[filter:sessions]
use = egg:zc.wsgisessions
6
[filter:sessions]
use = egg:zc.wsgisessions
7
[filter:sessions]
use = egg:zc.wsgisessions
8
[filter:sessions]
use = egg:zc.wsgisessions
9

如果我们更改数据库中的机密,我们可以导致会话 标识IER待重新设置:

<阻塞率> AAAAAAA H20 AAAAAAAAA 21 啊! AAAAAAAAA 23 啊! AAAAAAAAA 23

会话存储

一旦cookie从请求中加载或安排发送 有了响应,一个isession对象就存储在请求中。 让我们直接创建一个这样我们就可以看到它是如何工作的:

<阻塞率> 啊! 是啊。 AAAAAAAAA 28 AAAAAAA 29

助手

<阻塞率> 次级方案30
获取(请求,pkg-u id,key=none)

从会话中检索值;如果未指定键,则检索 sessionpkgdata容器。

<阻塞率> 啊! 啊! 是啊。 啊!

指定pkg标识符和密钥名时,会话数据对象 如果它不存在,则不会创建。

<阻塞率> 啊!
存储(请求、包-U ID、密钥、值)

将密钥/值对存储在会话中。

<阻塞率> 啊! AAAAAAA 37 AAAAAAAAA 38
删除(请求,包-U id,密钥)

按键从会话中删除值。如果未指定pkg id, 使用zc.wsgisessions.sessions.key的默认pkg id。

<阻塞率> 啊! AAAAAAAAA 38 AAAAAAA 41

如果底层会话数据映射没有创建 已经存在。

<阻塞率> AAAAAAA 42

更改

0.6.1(2013-10-08)

  • 在发行版中包含changes.txt。

0.6.0(2013-10-08)

  • 添加 最大年龄 路径 配置选项。

0.5.1(2013-06-12)

开源版本。

0.5(2013-03-12)

  • 使用加密的安全随机数源(os.urandom)进行 生成浏览器ID。
  • 修复get/remove帮助程序中导致sessiondata对象的错误 不必要的创造。

0.4(2012-01-03)

  • 接受用于会话存储的数据库名称参数。

0.3(2011-11-11)

  • 按更合理的顺序放置参数以帮助函数。
  • 需要pkg id来阻止错误的使用模式。

0.2(2011-11-10)

  • 使http://only和secure可配置。
  • 测试配置选项。
  • 测试数据库初始化和选项。

0.1(2011-11-10)

初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在Java中使用ENUM生成随机数   Spring4REST应用程序使用Java配置(无xml)IllegalArgumentException   java在Jar中加载新的FXML   java无法将字符串转换为long(时间戳)或long转换为字符串   流我如何通过Java中的grpc(如broadcase)将持续响应从服务器发送到客户端?   java类型不匹配:无法从一个连接转换到另一个连接   带有组织名称、用户名和密码的java Spring引导登录页面   java从Android设备向Windows CE设备发送/获取字符串数据?   java Selenium代码在localhost上运行良好,但无法捕获Jenkins上的StaleElementReferenceException   jodatime如何获取与下一个小时、分钟对应的日期时间?   java在一个int数组中,如何返回对应于最低值的索引?   在web3j中,如何为运行时发现的数组类型创建TypeReference?   java如何仅在Spring Security上对特定URL强制使用https?   java如何添加全局动作事件侦听器?