问题标签 [beaker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
194 浏览

python - 烧杯会话中的 last_accessed 时间始终无,但 _accessed_time 正在改变

beakers WSGI SessionMiddleware用来管理浏览器和应用程序之间的会话。我试图区分何时首次访问会话以针对任何进一步的请求。

从文档看来,WSGI 环境中提供了两个有用的值, ["beaker.session"].last_accessed 并且["beaker.session"]["_accessed_time"]

但是,在重复请求["beaker.session"].last_accessed上总是返回None,而时间戳值["beaker.session"]["_accessed_time"]可以看出随着每个请求而增加。

每个请求都执行一个["beaker.session"].save()-我尝试auto=True了会话中设置的各种组合,并使用了.save() / .persist(),但没有乐趣: .last_accessed总是None.

我没有使用会话来实际保存任何数据,只是为了管理session.id. (我正在使用“cookie”的会话类型)

0 投票
2 回答
517 浏览

python - 金字塔烧杯和uwsgi入门

我有点迷失在这里。如何开始使用金字塔烧杯的 python 脚本。我更喜欢像这样通过 uwsgi 调用它:

但是当我使用 curl 调用它时,我得到了

script.py 是这样的

谢谢!

0 投票
1 回答
1618 浏览

python - 基于实例变量有条件地禁用缓存装饰器

我想缓存一个类的某些方法——但read_only前提是在类的实例上设置了一个标志。

所以,在下面的对象中,我希望该get()方法是可缓存的,但前提self.readonly是它是 True。

我不能有条件地使用装饰器,因为它是在定义类时设置的,而不是在实例化时设置的。

0 投票
1 回答
9379 浏览

python - 与烧杯的 Bottle.py 会话

第一次在这里提问。

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

如果你注意到了,我会继续调用app_session = app.request.environ.get('beaker.session')每个def块,这样它就不会返回如下错误:TypeError: 'NoneType' object does not support item assignment--- Python 似乎无法识别其函数之外的变量(如果我错了,请纠正我)。

以下是问题:

  1. 我应该怎么做才能只有一个实例,app_session = app.request.environ.get('beaker.session')以便每个def块都可以使用它(我真的需要一个实例,因为它是要检查和使用的同一个会话)。
  2. 如果这是唯一的方法(虽然它很难看),那么我是否应该将所有需要会话的路由组合起来,这样我才能实现的单个实例app_session

就像是:

0 投票
1 回答
665 浏览

python - 我应该如何存储来自 Pyramid 应用程序的登录信息?烧杯?

我来自 PHP 世界,刚刚开始学习 Pyramid 框架。目前我正在尝试找出存储用户数据的最佳选择。

因此,在 PHP 中,我编写了一个模型,该模型利用 php 内置会话和 cookie 组合。只有当用户在登录时选择勾选“记住我”框时,才会使用 Cookie。因此,当用户登录时,会话包含可以使登录合法化的数据。当会话过期时,将对有效 cookie 进行检查,然后重新创建会话并延长 cookie 有效的日期。

所以在金字塔这里,我想做一些类似的事情,但可能更容易更好。我目前对金字塔烧杯感兴趣:http: //beaker.readthedocs.org/en/latest/

我的困境是,我应该使用哪种持久化方法?如果我只想将 Beaker 用于会话,那么我想我想使用 memcached 或仅内存配置。如果我想添加持久性,我肯定想通过 sqlalchemy 使用 mysql 数据库,因为我不想让服务器与会话文件混淆。或者我可以首先使用加密的 cookie,因此甚至可以消除大量工作,这些工作无论如何都必须使用 cookie 完成,因此也无需在服务器上存储会话。

你建议我和什么一起去?

由于这个网站不是主流的东西,而是高级客户的工具,我认为记住我的选项真的没有必要,我想我很想默认打开它,所以我应该去与基于烧杯饼干的会话?

在这种情况下,我的金字塔 development.ini 配置应该如何?

0 投票
1 回答
1502 浏览

python - 使用烧杯将会话数据存储在 Pyramid 的数据库中

我正在 Pyramid 中构建一个 Web 应用程序,它需要用户登录。数据库后端是通过 SQLAalchemy 连接的 MySQL 数据库。

Pyramid 有关于使用烧杯进行会话的介绍,但它只显示如何使用文件配置它。我不知道如何在数据库中存储会话数据(我认为这应该是可能的),因为那时我只有一个地方可以存储我的不同数据。

0 投票
1 回答
1865 浏览

python - 如何在不安装的情况下使用烧杯?

Beaker 不是 python 标准库的一部分,我想让我的应用程序没有依赖项,而不是 python 标准库本身。为此,我下载了烧杯并将其提取为我的应用程序的子包。

然后,我使用这个:

并得到这个错误

问题出在 beaker.middleware 第 11 行:

解释器无法识别烧杯包,因为它没有安装实际上我可以通过将该行更改为以下内容来解决这个问题:

但是这样做,我需要修改很多。

那么,有没有什么方法可以使用烧杯而不安装它并且不做太多修改呢?

PS:下面是我的目录结构

编辑:接受的答案是正确的,但就我而言,我在一级顶级目录中运行脚本。因此,以下解决方案似乎更强大:

或者可能是这样:如何在 Python 中获取当前执行文件的路径?:)

0 投票
1 回答
3517 浏览

python - 用烧杯缓存

我有一个程序可以抓取网站的数据。如果自上次检索后仅几分钟,我希望能够缓存该数据而不是加载它。我看着烧杯,但我对缓存非常陌生,不确定这是否是我需要的。我也不太明白 Cachemanager 是什么以及为什么我只使用“cache.get”而不是同时使用“cache.set”和“cache.get”。我已经包含了我一直用来测试的脚本。

我会以正确的方式解决这个问题吗?

0 投票
1 回答
1257 浏览

security - 如何防止用户设置pyramid_beaker使用的session id cookie的值?

我有一个使用 pyramid_beaker 的金字塔应用程序。这是我的配置:

这是登录表单视图:

现在,当用户想要登录时,视图会呈现一个表单并session_id生成一个 cookie。当用户提交一个有效的表单时,cookie 的值就会被接受来验证用户的身份。

没有什么能阻止用户在提交表单之前更改 cookie 的值。根据这个问题,这种行为显然是一个安全漏洞。

那么,如何使用 pyramid_beaker 以便服务器在登录成功时生成新的 session_id 值,而不是从 cookie 中获取呢?

0 投票
1 回答
739 浏览

bottle - 使用瓶子为所有 mako 模板设置一个全局变量?

我正在使用带烧杯的瓶子作为会话中间件。我想在我的所有 mako 模板中包含我的会话对象,而不在渲染时指定它:

而不是这个:

这样做:

这可能吗?如果是这样,怎么做?