Pyramid Weber Acceso a sesiones que han sido creadas.
Pregunta
Estoy tratando de usar el vaso de pirámide en el marco de la pirámide y simplemente no funciona, crea los objetos de la sesión, pero no puedo acceder a ellos con la línea
@view_config(route_name='load_qli', renderer='json')
def load_qli(request):
request.environ['beaker.session']
Da el siguiente error
KeyError
KeyError: 'beaker.session'
Mi archivo de desarrollo.ini se ve así
# 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
e init.py así
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
)
creo la sesión como esta
def my_view(request):
session = request.session
session['name'] = 'Fred Smith'
session.save()
¿Dónde estoy equivocado?
Solución
Debe poder utilizar la forma de inclusión y el paquete Pyramid_Beaker se puede inicializarse de los valores INI.
en su archivo INI:
pyramid_includes = pyramid_beaker
o dentro del archivo __init__.py de la función principal:
config.include('pyramid_beaker')
Puede leer más aquí http://docs.pylonsproject.org/Proyectos / Pyramid_Beaker / en / Último / # Configuración
La forma habitual de acceder a la sesión es a través de la solicitud como lo hace en my_view:
session = request.session
El paquete Pyramid_Beaker Use la fábrica de la Sesión de la Pirámide y la forma en que administra la sesión no está a través del objeto Solicitud.Enviso ['Beaker.Session'] como el ejemplo de Beaker.Para más información, lea http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/narr/sessions.html