我总是和cherrypy一起新手。 我的设置:Arch Linux,Python 3.3,tornado,cherrypy 3.2
尝试使用cherrypy.lib.sessions
为Web应用程序实现会话处理(出于某种原因,在各种论坛中通常称为cherrypy.sessions,可能是另一个版本)
我正在寻找以下示例:
实例化会话对象
设置任意命名属性的值
将会话写入会话文件
从会话文件中读取会话信息
访问修改后的属性
我的(相关)代码:
import cherrypy
class RequestHandlerSubmittedRequest(tornado.web.RequestHandler):
def get(self):
SetState(self)
def SetState(self):
cherrypy.config.update({'tools.sessions.on': True})
cherrypy.config.update({'tools.sessions.storage_type': 'file'})
#directory does exist
cherrypy.config.update({'tools.sessions.storage_path': '/tmp/cherrypy_sessions'})
cherrypy.config.update({'tools.sessions.timeout': 60})
cherrypy.config.update({'tools.sessions.name': 'hhh'})
到目前为止一切顺利。现在:
obj_session = cherrypy.lib.sessions.FileSession
在这里,我得到了第一个障碍(或误解)。 返回的obj_session不包含任何类型的会话ID,只是一个空对象框架。另外:/ tmp / cherrypy_sessions中此时没有创建文件 - 不应该在那里吗?我希望它能够在会话ID之后创建并命名。
好的,对象中没有ID,让我们分配一个:
session_id = obj_session.generate_id(self)
这会返回一个长的随机字符串,因为我应该猜测
现在我不知道如何继续分配和保存呼叫obj_session.save()
或obj_session.load()
,其中输入的几种变体会"AttributeError: 'module' object has no attribute X"
,其中X可以是"load"
,其他几个关键字。将self
或obj_session
本身传递给方法无济于事,只需更改错误的措辞即可。一般来说,我必须走错路。
那么,上面这五个步骤有一个例子吗?我在任何地方都找不到。
感谢。
伊戈尔