标签: beaker

如何在金字塔中刷新Be​​aker缓存中的所有区域?

我正在尝试在我使用Pyramid构建的Web服务器上设置缓存.我正在使用pyramid_beaker,它创建了一个后端来使用Beaker进行缓存.

我一直在使用缓存区域装饰器来实现缓存.

示例缓存区域如下所示:

def getThis(request):
    def invalidate_data(getData,'long_term',search_term):
         region_invalidate(getData,'long_term',search_term)
    @cached_region('long_term')
    def getData(search_term):
         return response
    try:
         request.matchdict['refresh']
    except:
         pass
    search_term = request.matchdict['searchterm']
    return getData(search_term)
Run Code Online (Sandbox Code Playgroud)

现在缓存工作正常,我可以触发每个区域的缓存刷新,我想知道如何刷新所有区域?

python beaker pyramid

10
推荐指数
1
解决办法
1201
查看次数

Python:Redis作为Beaker的会话后端

任何人都使用Redis作为Beaker后端成功了吗?你能告诉我链接或库怎么做吗?我正在寻找任何这样做的图书馆,但无法从谷歌搜索中得到任何东西.

python session pylons redis beaker

9
推荐指数
1
解决办法
5472
查看次数

在Google App Engine上使用Beaker(Django)

我们如何使用Beaker在Google App Engine上实施会话?(我说Beaker是因为gmemsess是短暂的,因此不适合).网上似乎没有例子.

我们通过App Engine Helper(不是app-engine-patch)使用Django 1.1.

django session google-app-engine beaker

7
推荐指数
1
解决办法
886
查看次数

如何访问Jinja2模板中的会话数据(应用程序引擎上的Bottle框架)?

我在Google App Engine上运行微框架.我正在使用Jinja2作为我的模板.我正在使用Beaker来处理会话.我仍然是一个非常大的Python新手,而且我很开心我得到了这个:)我的问题是我如何访问模板中的会话数据?我可以在实际的python代码中获得会话数据没问题.我每次调用jinja模板时都可以传递会话数据.但是因为我需要站点主菜单栏中的会话数据...这意味着我必须在每个页面上传递它.有谁知道我是否可以直接在模板中访问它?

例如,我需要我的标题链接的会话数据:

主页| 常见问题| 登录

要么

主页| 常见问题| 登出

任何帮助是极大的赞赏!:d

python session google-app-engine jinja2 beaker

7
推荐指数
1
解决办法
7826
查看次数

在Heroku上使用Memcache时,我应该配置Beaker的`session.lock_dir`吗?

我从切换金字塔应用的会话配置cookieext:memcached.我的应用程序托管在Heroku上,我根据他们的文档配置了他们的memcache插件.

我从Beaker的文档中了解到,指定a session.lock_dir对于防止狗堆效应至关重要.要明确:我必须提供目录的文件路径.Beaker然后将其用作某种锁,以防止多个客户端同时尝试设置相同的值.

对我来说,这听起来像糟糕的建筑.memcache的一个主要优点是它可以作为共享的外部服务.将我的应用程序进程绑定到磁盘绑定锁似乎是错误的方法.

同样,在Heroku上,每个"dyno" 我有一个短暂的文件系统(我理解这意味着每个进程).因此,虽然我可以提供lock_dir目录路径,但如果每个进程使用不同的目录,那么这会保护我免受狗堆效应吗?

我不确定我是否应该:

  • 指定一个lock_dir而不用担心它
  • 试图分叉Beaker并以某种方式修补它

另外,我想知道其他语言/框架在这里使用的模式.这只是一个烧杯问题还是其他非文件绑定设置遭受狗堆效应?

提前致谢,

詹姆士.

python memcached heroku beaker pyramid

7
推荐指数
1
解决办法
821
查看次数

Beaker中数据库和sqla后端之间的区别?

看起来Beaker支持两个数据库后端,分机:数据库和分机:sqla,但它们之间有什么区别?

python beaker

6
推荐指数
1
解决办法
529
查看次数

在python中缓存数据库数据

在项目中,我需要缓存从每个请求中获取的数据库数据。这样从下一次开始,数据(表行)将从缓存而不是 db 中选取,从而提高性能。在 DB 中,我有超过 10M 的数据行。我正在阅读烧杯缓存文档,从中似乎它只会缓存函数和参数作为键。那么这如何存储表数据,这是我的主要目标?或者在python中还有其他好的数据库缓存模块吗?

python caching beaker

6
推荐指数
1
解决办法
5242
查看次数

在Gevent Socket-IO中使用Flask Session

早上好,

我遇到了一些麻烦,我希望有人能在这里帮助我.我想要做的是访问Gevent Socket-IO Name空间中的Flask会话.

我曾尝试将beaker用作中间件客户端,但我仍然无法从socket-io名称空间中访问和更新会话信息.

我对这一切都很陌生,所以任何帮助都将不胜感激.

beaker flask gevent-socketio

6
推荐指数
1
解决办法
820
查看次数

烧杯作为会话中间件

我正在使用bottle.py编写应用程序,并且beaker.middleware.SessionMiddleware:

如何修改session.timeoutsession.cookie_expires值以便我可以实现一个登录系统,将用户登录30天?

我已经实现了标准的登录系统,所以一切正常,直到浏览器关闭,但是如果用户选中" 记住我"复选框,我想修改这些值.

如果用户选中" 记住我"复选框,我想到了两个变体:

  • 设置session.cookie_expiressession.timeout30天,但似乎因为我收到了Cookie到期的浏览器会话结束时,无视我的运行时修改,我不能在运行时修改这些值.

  • 设置session.timeout为30天并覆盖名为beaker.session.id写入相同会话ID但不同的到期日期的cookie .但是从第1点开始的运行时问题仍然存在,似乎我无法访问我刚用烧杯创建的会话ID,所以我不知道在cookie中存储什么.

我该如何实现呢?

python beaker bottle

5
推荐指数
0
解决办法
1634
查看次数

与烧杯的Bottle.py会话

这是第一次提问者.

我目前正在努力使用Bottle微框架如何正确使用Beaker.这是有问题的程序:

#!/usr/bin/python
# -*- coding: utf-8 -*-
# filename: server.py

import bottle as app
from beaker.middleware import SessionMiddleware

session_options = {
    'session.type': 'file',
    'session.data_dir': './session/',
    'session.auto': True,
}
app_middlware = SessionMiddleware(app.app(), session_options)
app_session = app.request.environ.get('beaker.session')

@app.route('/login')
def login():
    app_session = app.request.environ.get('beaker.session')
    app_session['logged_in'] = True

@app.route('/logout')
def logout():
    app_session = app.request.environ.get('beaker.session')
    if app_session.get('logged_in'):
        app_session['logged_in'] = False
        return 'You are logged out'
    app.redirect('/login')

@app.route('/dashboard')
def dashboard():
    app_session = app.request.environ.get('beaker.session')
    if app_session.get('logged_in'):
        return 'You are logged in'
    app.redirect('/login')

app.debug(True)
app.run(app=app_middlware, reloader=True)
Run Code Online (Sandbox Code Playgroud)

如果你注意到,我继续调用 …

python beaker bottle

5
推荐指数
1
解决办法
8089
查看次数