web2py:动态定义的会话变量
web2py: Dynamically defined session variables
您好 web2py 社区!
我目前正在开发一种组件之间的控制机制,所有组件都在名为 model 的公共数据集群上运行,由 model_id[=41 标识=].组件之间的通信是通过session变量实现的。
但由于用户应该可以选择并行操作多个模型,因此我需要区分用于每个模型的会话变量。
为此,我想通过 model_id 作为唯一标识符来补充不同的会话变量。
读取这样的会话变量是比较容易的部分,例如
current_action = eval('session.manage_action_%s' % model_id)
但是向该会话变量写入新值不起作用。到目前为止,我的解决方案如下:
vars()['session.manage_action_%s' % model_id] = new_action
这只会产生一个局部变量会话。manage_action_5(或model_id的任何值)。但它不是一个真正的、可重用和可读的会话变量。
因此我的问题是:
如何根据运行时读取的变量值生成动态定义的会话变量?
提前感谢您的支持,因为如果有解决方案就太好了...
此致,
克莱门斯
session
对象是一个类似字典的对象,因此您可以对动态生成的键使用字典语法:
session['manage_action_%s' % model_id] = new_action
current_action = session['manage_action_%s' % model_id]
或:
session.update(**{'manage_action_%s' % model_id: new_action})
current_action = session.get('manage_action_%s' % model_id)
您好 web2py 社区!
我目前正在开发一种组件之间的控制机制,所有组件都在名为 model 的公共数据集群上运行,由 model_id[=41 标识=].组件之间的通信是通过session变量实现的。
但由于用户应该可以选择并行操作多个模型,因此我需要区分用于每个模型的会话变量。
为此,我想通过 model_id 作为唯一标识符来补充不同的会话变量。
读取这样的会话变量是比较容易的部分,例如
current_action = eval('session.manage_action_%s' % model_id)
但是向该会话变量写入新值不起作用。到目前为止,我的解决方案如下:
vars()['session.manage_action_%s' % model_id] = new_action
这只会产生一个局部变量会话。manage_action_5(或model_id的任何值)。但它不是一个真正的、可重用和可读的会话变量。
因此我的问题是:
如何根据运行时读取的变量值生成动态定义的会话变量?
提前感谢您的支持,因为如果有解决方案就太好了...
此致, 克莱门斯
session
对象是一个类似字典的对象,因此您可以对动态生成的键使用字典语法:
session['manage_action_%s' % model_id] = new_action
current_action = session['manage_action_%s' % model_id]
或:
session.update(**{'manage_action_%s' % model_id: new_action})
current_action = session.get('manage_action_%s' % model_id)