Python Pyramid 会话
会话是客户端登录服务器和退出服务器之间的一个时间间隔。会话对象也是一个字典对象,包含会话变量的键值对和相关值。在Pyramid中,它可以作为请求对象的一个属性。
为了处理会话机制,Pyramid应用程序对象必须配置一个会话工厂,以返回会话对象。Pyramid核心提供了一个基本的会话工厂,它使用cookies来存储会话信息。
默认的会话工厂
pyramid.session 模块定义了 SignedCookieSessionFactory 类。它的对象需要一个秘钥来对会话cookie信息进行数字签名。
配置器类的 set_session_factory() 方法使用这个工厂对象来设置会话。
一旦这样做了,会话对象就可以作为 request.session 属性来实现了。要添加一个会话变量,请使用 –
要检索一个会话变量,请使用 –
要删除一个会话变量,请使用 pop() 方法。
会话实例
下面描述的是会话变量在Pyramid应用程序中的使用。首先,登录路线(与login()视图函数相关联)在浏览器上弹出一个登录表单。
add()函数读取’user’表单属性并使用其值来添加一个会话变量。
read()视图读回会话变量数据并显示欢迎信息。
这些视图与会话工厂一起被添加到应用程序配置中。
例子
以下是完整的代码
将这个脚本作为main.py保存在Pyramid虚拟环境文件夹下的一个子文件夹(称为 “会话”)中。注意,这个子文件夹必须有一个空的 __init__.py 文件,它才能被当作一个包。
输出
运行main.py并输入 http://localhost:6543/, 在浏览器中打开登录表单。
输入用户名并按下 “提交 “按钮。给定的名字被保存为 “user “会话变量。
点击这里 “的链接读 回会话 变量并显示欢迎信息。
注销链接会弹 出会话 变量并将浏览器带回登录页面。