【问题标题】:Pyramid beaker accessing Sessions that have been created金字塔烧杯访问已创建的会话
【发布时间】:2012-04-08 17:45:41
【问题描述】:

我正在尝试在 Pyramid 框架中使用金字塔烧杯,它只是无法正常工作,它会创建会话对象,但我无法使用该行访问它们

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

它给出了以下错误

KeyError

KeyError: 'beaker.session'

我的 development.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()

我哪里错了?

【问题讨论】:

  • 我不熟悉金字塔;你不能在第一个代码示例中只做request.session 吗?传递给my_view的请求和传递给load_qli的请求有什么不同?

标签: python session pyramid beaker


【解决方案1】:

您应该能够只使用包含方式,并且 pyramid_beaker 包可以从 ini 值初始化自己。

在您的 ini 文件中:

pyramid_includes = pyramid_beaker

或在主函数的 __init__.py 文件中:

config.include('pyramid_beaker')

您可以在这里阅读更多内容http://docs.pylonsproject.org/projects/pyramid_beaker/en/latest/#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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 2015-11-21
    • 2017-01-12
    • 2012-09-18
    • 2016-09-18
    • 2012-11-23
    • 2013-02-27
    相关资源
    最近更新 更多