我是cherrypy的新手。我的设置:Arch Linux、Python 3.3、tornado、cherrypy 3.2
尝试使用cherrypy.lib.sessions
(由于某种原因在各种论坛中通常称为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
将or本身传递obj_session
给方法没有帮助,只会更改错误的措辞。总的来说,我一定是朝着一个非常错误的方向前进。
那么,是否有上述五个步骤的示例?我在任何地方都找不到。
谢谢。
伊戈尔