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)