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