1

我是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给方法没有帮助,只会更改错误的措辞。总的来说,我一定是朝着一个非常错误的方向前进。

那么,是否有上述五个步骤的示例?我在任何地方都找不到。

谢谢。

伊戈尔

4

0 回答 0