1

我正在尝试在我正在研究的小型 CMS 上使用会话。

我正在测试,我能够使用瓶子作为服务器很好地运行会话。下面的代码:

# test.session.py

import bottle

from beaker.middleware import SessionMiddleware

session_opts = {
    'session.type': 'file',
    'session.cookie_expires': 300,
    'session.data_dir': './data',
    'session.auto': True
}

app = SessionMiddleware(bottle.app(), session_opts)

@bottle.route('/set_session')
def session_test():
    varsession = bottle.request.environ.get('beaker.session')
    varsession['value1'] = 'This is the value'
    return varsession['value1']

@bottle.route('/get_session')
def sessao():
    varsession = bottle.request.environ.get('beaker.session')
    return varsession['value1']

bottle.run(app=app)

但我使用 Apache + modwsgi 来运行这个 CMS。而且我有点困惑我应该在哪里放置导入等...我应该放入“adapter.wsgi”还是应该放入“.py”文件?

# WSGI.文件

import sys, os, bottle

sys.path = ['/filmes/appone'] + sys.path
os.chdir(os.path.dirname(__file__))

import appone # This loads your application

application = bottle.default_app()

# .py file


import bottle

from bottle import route, request, debug
from beaker.middleware import SessionMiddleware

session_opts = {
'session.type': 'file',
'session.cookie_expires': 300,
'session.data_dir': './data',
'session.auto': True
}

app = SessionMiddleware(bottle.app(), session_opts)

@route('/')
def funcone():
    return "Home Page"

@route('/session_test')
def session_test():
    varsession = bottle.request.environ.get('beaker.session')
    varsession['value1'] = 'This is the value'
    return varsession['value1']

我收到 500 错误。这就是我所得到的。

顺便说一句,我应该在哪里设置 Apache + WSGI 上的 debug True?

我对 Bottle/Python 有点陌生....

4

1 回答 1

1

这就是我将如何修改你的#WSGI.file

import os

os.chdir('/filmes/') # the directory where your py files are, use the full linux system path
from appone import app # I assume appone.py is your main application

application = app

您正在引用 default_app(),当您在代码中实现会话时,它已被 app 替换。

于 2013-07-12T06:40:00.777 回答