2013-07-09 33 views
1

我正在嘗試在我正在處理的小CMS上使用會話。Bottle + Apache + WSGI +會話

我正在測試,我能夠很好地使用瓶作爲服務器運行會話。代碼如下:

# 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.file

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?

我有點新的瓶/ Python的....

+0

500錯誤 - 您在error_log中看到了什麼?將有一個堆棧跟蹤,這將有助於追蹤問題。 –

回答

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(),這是在代碼中實現會話時由應用替換。