1
我正在使用瓶子編寫一個小型web程序並將以下源文件命名爲index.py
。我也在程序中使用燒杯會話庫。當我使用運行代碼時,一切正常。但是當我使用gunicorn -c gunicorn.conf index:app
時,我收到這樣的錯誤消息,說燒杯密鑰beaker.session
不存在。如何更改代碼以使其在gunicorn服務器中再次運行?嘗試使用python中的gunicorn進行燒杯會話工作瓶框架
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/bottle-0.12.7-py2.7.egg/EGG-INFO/scripts/bottle.py", line 857, in _handle
self.trigger_hook('before_request')
File "/Library/Python/2.7/site-packages/bottle-0.12.7-py2.7.egg/EGG-INFO/scripts/bottle.py", line 640, in trigger_hook
return [hook(*args, **kwargs) for hook in self._hooks[__name][:]]
File "/Users/yizeng/Documents/python_projects/simple-courses/index.py", line 17, in setup_request
request.session = request.environ['beaker.session']
KeyError: 'beaker.session'
爲index.py
源代碼:
import os, sys, bottle
from bottle import debug, route, request, run, Bottle, static_file, hook
from apps import model, views
from beaker.middleware import SessionMiddleware
app = bottle.app()
session_options = {
'session.type': 'file',
'session.cookie_expires': 300,
'session.data_dir': './data',
'session.auto': True
}
@hook('before_request')
def setup_request():
request.session = request.environ['beaker.session']
@app.route('/assets/<filepath:path>')
def server_static(filepath):
return static_file(filepath, root='assets')
@app.route('/test')
def test():
s = request.environ.get('beaker.session')
s['test'] = s.get('test', 0) + 1
s.save()
return 'Test counter: %d' % s['test']
app_session = SessionMiddleware(app, session_options)
if __name__ == '__main__':
app.run(app=app_session)