Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我正在努力理解CherryPy中的会话_Python_Cherrypy - Fatal编程技术网

Python 我正在努力理解CherryPy中的会话

Python 我正在努力理解CherryPy中的会话,python,cherrypy,Python,Cherrypy,我最近开始了一个项目,将我们的web应用程序从apache+Mod_python迁移到cherry py 我还有很多事情要做,但现在,是CherryPy的课程让我有点头疼 我的第一个问题是它们是如何工作的 在Mod_python中,我们执行以下操作: ... from mod_python import Session sess = Session.Session(req, timeout = 60*60, lock=0) #req is the request page object. 从C

我最近开始了一个项目,将我们的web应用程序从apache+Mod_python迁移到cherry py

我还有很多事情要做,但现在,是CherryPy的课程让我有点头疼

我的第一个问题是它们是如何工作的

在Mod_python中,我们执行以下操作:

...
from mod_python import Session
sess = Session.Session(req, timeout = 60*60, lock=0)
#req is the request page object.
从CherryPy文档判断,启动会话所需做的就是通过添加以下内容来修改配置:

cherrypy.config.update({
    'tools.sessions.on': True, 
    'tools.sessions.storage_type': 'ram'})
上面的默认时间为60分钟(尽管您可以手动设置自己的时间),但如果我想销毁该会话并创建一个新会话,该怎么办?我在任意文件中调用
cherrypy.lib.sessions.expire()
,然后再次执行
cherrypy.config.update
操作?或者,CherryPy会自己进行新的会话吗?如果我想使用不同的到期时间创建新会话,该怎么办

注意:当我说任意文件时,我指的是一个没有运行CherryPy的文件(我的“配置”文件从我们的其他页面导入并获取html,很像Mod_Python附带的标准发布程序)

我试着制作一个快速的小测试文件:

import cherrypy
from cherrypy.lib import sessions

def index(sid=0, secret=None, timeout=30, lock=1):
    cherrypy.session['test'] = 'test'
    cherrypy.lib.sessions.expire()
    return cherrypy.session.get('test','None')
最终结果是“测试”仍然显示在屏幕上。发生这种情况是因为客户端会话已过期,但本地会话仍有数据吗?在这种情况下,如何检查会话是否过期

对不起,这个问题让人困惑,但我很困惑


谢谢你的帮助

尝试此操作以结束会话

sess = cherrypy.session
sess['_cp_username'] = None
然后尝试创建一个会话

cherrypy.session.regenerate()
cherrypy.session['_cp_username'] = cherrypy.request.login
我用这个例子来处理我的大部分会话活动

希望这有帮助

安德鲁