金字塔烧杯访问已创建的会话
题
我正在尝试在金字塔框架中使用金字塔烧杯,它只是不起作用它创建会话对象,但我无法使用该行进入它们
@view_config(route_name='load_qli', renderer='json')
def load_qli(request):
request.environ['beaker.session']
.
它给出了以下错误
KeyError
KeyError: 'beaker.session'
.
我的开发.ini文件看起来像这个
# pyramid_beaker settings
session.type = file
session.data_dir = %(here)s/data/sessions/data
session.lock_dir = %(here)s/data/sessions/lock
session.key = customerskey
session.secret = customerssecret
session.cookie_on_exception = true
.
和init.py
from pyramid.config import Configurator
from sqlalchemy import engine_from_config
from qlipe.models import DBSession
from pyramid_mailer import mailer_factory_from_settings
from pyramid_beaker import session_factory_from_settings
def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
engine = engine_from_config(settings, 'sqlalchemy.')
DBSession.configure(bind=engine)
# pyramid_beaker add-on
session_factory = session_factory_from_settings(settings)
config = Configurator(
settings=settings,
session_factory=session_factory
)
.
我创建如此
def my_view(request):
session = request.session
session['name'] = 'Fred Smith'
session.save()
.
我在哪里出错?
解决方案
您应该能够只使用包含的方式,Pyramid_beaker包可以从INI值初始化。
在您的INI文件中:
pyramid_includes = pyramid_beaker
.
或在主要函数的__init__.py文件中:
config.include('pyramid_beaker')
.
您可以在此处阅读更多 http://docs.pylonsproject.org/项目/ Pyramid_beaker / en /最新/#setup
访问会话的通常方法是通过在my_view中的请求:
session = request.session
.
Pyramid_beaker包使用金字塔会话工厂,并且管理会话的方式不是通过Request.environement ['beaker.session']对象,如烧杯的例子。有关详细信息,请阅读 http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/narr/sessions.html
不隶属于 StackOverflow