一个可扩展的烧杯助手包来管理烧杯会话

BeakerHelpers的Python项目详细描述


beakerhelpers是一个Beaker扩展,可以显示活动会话并清除 旧的。目前它只适用于beaker.ext.database存储后端。

beakerhelpers也是一个名称空间包,因此可以在 这个namespace

您可以在github.com找到git存储库

安装

easy_install

$ <env>/bin/easy_install BeakerHelpers

pip

$ <env>/bin/pip install BeakerHelpers

获取/显示会话使用情况

您可以调用get_sessions获取活动会话(dict)的列表:

>>> import sqlalchemy
>>> from beakerhelpers.sessions import get_sessions
>>> sessions_table = sqlalchemy.Table('beaker_cache',
...     sqlalchemy.MetaData('sqlite:///my.db'), autoload=True)
>>> get_sessions(sessions_table, timeout=3600)  # timeout in seconds
[{
    '_accessed_time': datetime.datetime(2010, 1, 1, 10, 10, 10),
    '_creation_time': datetime.datetime(2010, 1, 1, 08, 40, 00),
    'user_name': u'john@doe.com',
}]

上面的表单适合python访问。如果你想提供这些数据 对于用户,可以使用具有相同参数的show_sessions

>>> print show_sessions(sessions_table, timeout=3600)
--------------------------------------------------------
     _accessed_time |      _creation_time |    user_name
--------------------------------------------------------
2010-01-01 10:10:10 | 2010-01-01 08:40:00 | john@doe.com

但是,您可以使用paster beakersessions从 控制台:

$ <env>/bin/paster beakersessions cfg/prod.ini
--------------------------------------------------------
     _accessed_time |      _creation_time |    user_name
--------------------------------------------------------
2010-01-01 10:10:10 | 2010-01-01 08:40:00 | john@doe.com

在这种情况下,cfg/prod.ini文件应该是可加载的 配置文件。beakerhelpers希望在[app:main]中找到这些键。 cfg/prod.ini的部分

  • ^{tt5}$ = ext:database - the only supported backend (yet)
  • ^{tt6}$ - an SQLAlchemy engine URL
  • ^{tt7}$ - session timeout in seconds
  • ^{tt8}$ - (optional) session storage table. According to beaker.ext.database, defaults to beaker_cache.

paster beakersessions命令还接受两个可选参数:

  • ^{tt10}$ - beaker key prefix in the config file, defaults to beaker.session

  • ^{tt11}$ - do not show sessions older than the timeout. Timeout examples:

    • 3s - 3 seconds
    • 14m - 14 minutes
    • 36h - 36 hours
    • 2d - 2 days
    • 0 - show all sessions (ignore timeout even in the config file)

    If not provided the timeout will be taken from the config file, <prefix>.timeout (seconds).

会话清除用法

可以使用python脚本中的cleanup_sessions删除旧的 会话:

>>> import sqlalchemy
>>> from beakerhelpers.sessions import cleanup_sessions
>>> sessions_table = sqlalchemy.Table('beaker_cache',
...     sqlalchemy.MetaData('sqlite:///my.db'), autoload=True)
>>> cleanup_sessions(sessions_table, timeout=3600)  # timeout in seconds

超过1小时的会话将被清除。但是,会话清理是 作为粘贴脚本调用特别方便:

$ <env>/bin/paster beakercleanup cfg/prod.ini

它需要相同的配置文件结构并采用相同的可选参数 就像烧杯一样。但是,在本例中,会话比^{tt13}旧$ 将被删除。

注意-鸟瞰和鸟瞰清理用户

由于命名空间问题,BeakerShowSessions和BeakerCleanup不能 安装PIP和/或简易安装。他们的功能被合并到这个 打包和访问变得更简单。我们强烈建议使用鸟嘴钳 相反。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
正则表达式使用Java从服务器截断文本   micronaut微服务的java内存消耗   如果私有函数需要相同的输入,java应该在公共函数中显式执行异常检查   为什么我们在java中使用抽象类和抽象方法   Java中接受外来字母的字符串?   cordova Android:ClassNotFoundException,包括ZXing   通过LiveData observer向特定索引添加项时出现java IndexOutOfBoundsException   jsp Java从两个源调用一个servlet   java如何设置网格布局中按钮的位置?   java HashMap返回方法   java JDK错误版本   java如何将现有类集成到新的Swing项目中   java如何在扫描程序位于输入端时使for循环停止   java正则表达式匹配空白表   java组织。格拉德尔。工具。BuildException:设置的代码长度无效   JList中的swing Java格式化字符串   javabeans如何将JavaBean属性映射到另一个名称以进行输出?   ajax请求后的java Rerender RichFaces错误消息