当前位置: 首页 > 工具软件 > Beaker > 使用案例 >

beaker-用于会话和缓存的WSGI中间件

艾骏
2023-12-01

Beaker是一个Web会话和常规缓存库,其中包括用于Web应用程序的WSGI中间件。

作为一个常规的缓存库,Beaker可以处理存储各种时间的各种Python对象。

Beaker主要建立在MyghtyUtils的代码上,然后通过数据库支持进行重构和扩展。

Beaker包括Cache和Session WSGI中间件,以简化与支持WSGI的框架的集成,并且由Pylons和 TurboGears自动使用。

特征

  • 快速,强大的性能

  • 多个读取器/单个写入器锁定系统,避免重复创建同时缓存

  • 缓存后端包括dbm,文件,内存,memcached,Redis,MongoDB和数据库(将SQLAlchemy用于多数据库供应商支持)

  • 签名的cookie以防止会话劫持/欺骗

  • 仅限Cookie的会话,无需数据库或文件后端(适用于集群系统)

  • 可扩展容器对象以支持新的后端

  • 缓存可以划分为命名空间(以表示模板,对象等),然后键入不同的副本

  • 创建自动回调功能,以在到期后创建新的缓存副本

  • 每个Cache对象的后端,键和到期的细粒度切换

安装

通过网盘可以直接下载beaker的源代码。

Beaker的SessionMiddleware实现提供的会话对象 实现了dict样式的接口,并带有一些其他对象方法。一旦安装了SessionMiddleware,就可以beaker.session在WSGI环境中使用会话对象。

在后端创建会话时,会将cookie放置在对客户端的响应中。

示例

使用带有会话的基本WSGI应用程序的完整示例:
 

from beaker.middleware import SessionMiddleware

def simple_app(environ, start_response):
    # Get the session object from the environ
    session = environ['beaker.session']

    # Check to see if a value is in the session
    user = 'logged_in' in session

    # Set some other session variable
    session['user_id'] = 10

    start_response('200 OK', [('Content-type', 'text/plain')])
    return ['User is logged in: %s' % user]

# Configure the SessionMiddleware
session_opts = {
    'session.type': 'file',
    'session.cookie_expires': True,
}
wsgi_app = SessionMiddleware(simple_app, session_opts)

 

 类似资料: