什么';我的烧杯、WSGI、Apache2、Python有什么问题?

什么';我的烧杯、WSGI、Apache2、Python有什么问题?,python,apache,mod-wsgi,wsgi,beaker,Python,Apache,Mod Wsgi,Wsgi,Beaker,好的,我的代码在下面。我正在与apache2、mod_wsgi、烧杯、python合作 def application(environ, start_response): session = environ['beaker.session'] if not session.has_key('value'): session['value'] = 0 session.save() try: s = session['value']

好的,我的代码在下面。我正在与apache2、mod_wsgi、烧杯、python合作

def application(environ, start_response):
    session = environ['beaker.session']
    if not session.has_key('value'):
        session['value'] = 0
    session.save()
    try:
        s = session['value']
    except:
        s = "value not found"
    start_response('200 OK', [('Content-type', 'text/html')])
    #response = "<br />".join(environ)
    beaker = "<br />".join(session)
    try:
        cookie = "".join(environ['HTTP_COOKIE'])
    except:
        cookie = ""
    return [cookie,'<br />', str(s), '<br />', beaker, '<br /> accessed:', 
str(session['_accessed_time']), '<br /> creation:', 
str(session['_creation_time'])]

from beaker.middleware import SessionMiddleware

application = SessionMiddleware(
    application,
    key='mysession',
    secret='blah',
)
保存它,然后转到localhost/file.wsgi。我希望变量s(即=session['value'])获得我之前设置的值。当我在更改并保存文件5-15秒后转到localhost/file.wsgi时,会话中不再有“value”键,显然它也不再有值。显然,访问时间也会改变,但创建时间也会改变(每次刷新后都会改变)

注意:我还尝试用替换程序的一部分,上面我注释掉的部分

    if not session.has_key('value'):
        session['value'] = 0
    session['value'] += 1
    session.save()
在我更改并访问localhost/file.wsgi之后发生的情况是会话['value']将递增(预期),但随后它会突然跳转并在0处创建一个新会话['value'],然后再次递增,基本上这将创建多个会话['value'],但会话令牌'mysession'将保持不变。此外,每隔几次刷新,该值就会跳回另一个会话['value'],并停留在那里,然后跳转到另一个会话['value']

我对正在发生的事情感到非常困惑,为什么我设置的会话['value']没有保持不变,为什么创建时间不断变化,为什么有多个创建,为什么会话会跳转

顺便说一句,这在chrome和firefox上都是一样的

我使用的是Ubuntu10.10和Python2.6,我假设使用的是最新版本的烧杯、apache2和mod_wsgi

是不是我的编程问题,配置糟糕的apache2,没有正确使用烧杯,什么


非常感谢各位。

我不完全确定这里出了什么问题,但我很想知道您在修改代码时是否重新启动了wsgi进程。此外,您可以重写以下内容:try:s=session['value'],除了:s=“value not found”作为s=session.get('value',“value not found”)我尝试过编写代码,然后在不重新启动apache的情况下对其进行注释,也尝试过重新启动apache,这两种方法都产生了相同的结果。我不完全确定这里出了什么问题,但我很想知道在修改代码时是否重新启动了wsgi进程。此外,您可以重写以下内容:try:s=session['value']除了:s=“value not found”as s=session.get('value','value not found')之外,我尝试过编写代码,然后在不重新启动apache的情况下对其进行注释,也在重新启动apache的情况下进行注释,这两种方法都产生了相同的结果。
    if not session.has_key('value'):
        session['value'] = 0
    session['value'] += 1
    session.save()