使用amazon的dynamodb的django会话后端

django-dynamodb-sessions的Python项目详细描述


Info:This package contains a simple Django session backend that uses Amazon’s DynamoDB for data storage.
Author:Greg Taylor

状态

django dynamodb会话在 EC2号。虽然它应该为黄金时段做好准备,但它并没有经历过激烈的战斗 刚刚测试过。其他注意事项:

  • 当前没有删除过期会话的管理命令。我们 无法重用django cleanup命令,因此我们必须编写自己的命令。 这将在下一版本中添加,我们已经设置了过期时间 用于驱动清理的属性。

设置dynamodb表格

在使用此模块之前,您需要访问DynamoDB tab 在AWS管理控制台中。然后:

  • 点击create table按钮。
  • 输入sessions作为表名。这可能是别的,你会 只需要调整settings.DYNAMODB_SESSIONS_TABLE_NAME值 因此。
  • 选择主键类型=Hash
  • 选择String哈希属性类型。
  • 输入session_key作为哈希属性名
  • continue按钮。
  • 决定吞吐量。空闲层是10个读容量单元,5个写容量单元。
  • 完成其余步骤

创建表后,就可以在 Django应用程序。

安装

使用pipeasy_install安装django dynamodb会话:

pip install django-dynamodb-sessions

在您的settings.py文件中,您需要这样的文件:

DYNAMODB_SESSIONS_AWS_ACCESS_KEY_ID = 'YourKeyIDHere'
DYNAMODB_SESSIONS_AWS_SECRET_ACCESS_KEY = 'YourSecretHere'

如果您想在应用程序和dynamodb之间添加一个缓存层 若要减少查询(如django的缓存数据库后端),请设置会话 后端到:

SESSION_ENGINE = 'dynamodb_sessions.backends.cached_dynamodb'

否则,直接转到dynamodb:

SESSION_ENGINE = 'dynamodb_sessions.backends.dynamodb'

在那之后,把她炒鱿鱼,盯着你的亚马逊管理控制台 查看是否需要放大或缩小读/写单位。

如果你遇到任何错误,有问题,或想分享一个想法, 打我们的issue tracker

配置

您的settings.py中可以使用以下设置:

DYNAMODB_SESSIONS_TABLE_NAME:
The table name to use for session data storage. Defaults to ^{tt1}$.
DYNAMODB_SESSIONS_TABLE_HASH_ATTRIB_NAME:
The hash attribute name on your session table. Defaults to ^{tt5}$
DYNAMODB_SESSIONS_ALWAYS_CONSISTENT:
If you’re not using this session backend behind a cache, you may want to force all reads from DynamoDB to be consistent. This may lead to slightly slower queries, but you’ll never miss object creation/edits. Defaults to ^{tt12}$.
DYNAMODB_SESSIONS_AWS_ACCESS_KEY_ID:
The access key for the AWS account to use for DynamoDB.
DYNAMODB_SESSIONS_AWS_SECRET_ACCESS_KEY:
The secret for the AWS account to use for DynamoDB.
DYNAMODB_SESSIONS_AWS_REGION_NAME:
The region to use for DynamoDB.

更改

0.6

  • 删除一些不再使用的导入。
  • PEP8清理。

0.5

  • 在后端用self.\u session\u密钥替换self.session\u密钥。(adamn)

0.4

  • django 1.4兼容性,以及不必要的代码删除。(adamn)

0.3

  • 使用setuptools而不是distutils重新打包。

0.2

  • 正在更正缓存的\u dynamodb后端的问题。

0.1

  • 初次发布。

许可证

django dynamodb会话是根据BSD License授权的。

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

推荐PyPI第三方库


热门话题
java是数据线。getMicrosecondPosition()线程安全?   java我可以设置多个。whereEqualTo在firestore查询中指向文档中的字段?   java Intellij 14 Glassfish服务器未连接。部署不可用   java JPA。如何返回null而不是LazyInitializationException   java TarsosDSP Clap检测   比较基于字符串的java枚举   java空指针异常日历。设定时间   java Hystrix在运行时忽略超时   将数据从Java RESTful服务器推送到Android手机上进行通知   java Jnotify delete vs shift delete问题   java安装失败\u没有匹配\u ABIS res113   TreeJava:传递未实例化的对象引用是如何工作的?   java如何使用Android ringtone manager从资产文件夹播放铃声?   java在Dropwizard的不同状态下使用不同的模拟