2013-07-09 2 views
1

저는 현재 작업하고있는 작은 CMS에서 세션을 사용하려고합니다.병 + 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) 

하지만이 CMS를 실행하려면 Apache + modwsgi를 사용하고 있습니다. 그리고 나는 수입품 등을 어디에 두어야하는지 혼란 스럽습니다 ... "adapter.wsgi"에 넣어야할까요, 아니면 ".py"파일에 넣어야합니까?

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'] 

#의 WSGI.file 나는 500 오류가 발생했습니다. 그게 다야.

그런데 Apache + WSGI에서 debug는 True로 설정해야합니까?

내가

+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를 참조하고 수정하는 방법입니다 .... 병/파이썬에 새의 종류를 해요이었다 코드에서 세션을 구현할 때 앱으로 대체되었습니다.