我的会话有问题
用户从下拉菜单中选择smth后,我必须将该值插入到会话中。我需要这个值来访问模型中的身份验证表的数据库(如果我从request.var读取,当我转到登录/注册表单时,它就会崩溃)。我应该在会话中的什么位置插入值,以及如何插入值(视图、控制器)。
目前,我使用cookie解决了这个问题,但它并不是最安全的。
任何suggestions=
谢谢
发布于 2013-02-07 16:20:52
session是Storage类的另一个实例。存储到会话中的任何内容,例如:
session.myvariable = "hello"
可以在以后的时间检索:
a = session.myvariable
换句话说,它已经存在了--只需给它赋值变量即可。如果您希望使用数据库,则必须在DB直通模型中定义会话表。引用自web2py手册:
例如,
用于在数据库中存储会话:
session.connect(request,response,db,masterapp=None)
其中,db是打开的数据库连接的名称(由DAL返回)。它告诉web2py您希望将会话存储在数据库中,而不是存储在文件系统中。session.connect必须在db=DAL(...)之后,但在任何其他需要会话的逻辑之前,例如,设置Auth。
web2py创建一个表:
db.define_table('web2py_session',字段(‘locked’,'boolean',default=False),字段(‘client_ip’),字段(‘created_datetime’,'datetime',default=now),字段(‘modified_datetime’,'datetime'),字段(‘unique_key’),字段(‘session_data’,'text'))
并在session_data字段中存储cPickled会话。
默认情况下,选项masterapp=None告诉web2py尝试在运行的应用程序中检索request.application中名称为的应用程序的现有会话。
如果您希望两个或更多应用程序共享会话,请将masterapp设置为主应用程序的名称。
https://stackoverflow.com/questions/12527199
复制相似问题