Domanda

Sto cercando di utilizzare il becher piramideo in Pyramid Framework e non funziona, crea gli oggetti di sessione ma non riesco ad accedervi con la linea

@view_config(route_name='load_qli', renderer='json')
def load_qli(request):
    request.environ['beaker.session']
.

Dà il seguente errore

KeyError

KeyError: 'beaker.session'
.

Il mio file Development.ini sembra questo

# 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 come questo

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 sessione come questa

def my_view(request):
    session = request.session
    session['name'] = 'Fred Smith'
    session.save()
.

Dove sto andando male?

È stato utile?

Soluzione

Dovresti essere in grado di utilizzare semplicemente il modo include e il pacchetto Pyramid_Beaker può inizializzarsi dai valori INI.

Nel tuo file INI:

pyramid_includes = pyramid_beaker
.

o all'interno del tuo file della funzione principale __init__.py:

config.include('pyramid_beaker')
.

Puoi leggere di più qui http://docs.pylonsproject.org/Progetti / Pyramid_Beaker / IT / Ultima / # Imposta

Il solito modo per accedere alla sessione è attraverso la richiesta come fai in My_View:

session = request.session
.

Il pacchetto Pyramid_Beaker utilizza la fabbrica di sessione piramidale e il modo in cui gestisce la sessione non è attraverso l'oggetto Request.Invironment ["Beaker.Session"] come l'esempio del becher.Per maggiori informazioni Leggi http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/narr/sessions.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top