使用Schematics或Marshmallow进行模式验证的Python ORM风格接口,用于Amazon (AWS) DynamoDB
项目描述
DynamoDB + Marshmallow == Dynamallow
此软件包正在开发中 - 欢迎反馈/建议等!
两件精彩的事情,更完美!
Dynamallow是一个Python库,它将Boto v3 DynamoDB API和Marshmallow集成在一起。它们共同提供了一个简单、受ORM启发的接口,用于具有完全定义的、强类型模式的DynamoDB服务。
from dynamallow import MarshModel
from marshmallow import fields
class Book(MarshModel):
class Table:
name = 'prod-books'
hash_key = 'isbn'
read = 25
write = 5
class Schema:
isbn = fields.String(validate=validate_isbn)
title = fields.String()
author = fields.String()
publisher = fields.String()
year = fields.Number()
# Store new documents directly from dictionaries
Book.put({
"isbn": "12345678910",
"title": "Foo",
"author": "Mr. Bar",
"publisher": "Publishorama"
})
# Work with the classes as objects
# You can pass attributes from the schema to the constructor
foo = Book(isbn="12345678910", title="Foo", author="Mr. Bar",
publisher="Publishorama")
foo.save()
# Or assign attributes
foo = Book()
foo.isbn = "12345678910"
foo.title = "Foo"
foo.author = "Mr. Bar"
foo.publisher = "Publishorama"
foo.save()
# In all cases they go through Schema validation, calls to
# .put or .save can result in ValidationError being raised.
# You can then fetch, query and scan your tables.
# Get on the hash key, and/or range key
Book.get(isbn="12345678910")
# Query based on the keys
Book.query(isbn__begins_with="12345")
# Scan based on attributes
Book.scan(author="Mr. Bar")
Book.scan(author__ne="Mr. Bar")
文档
完整文档可在以下网址找到
TODO
索引 - 目前没有对索引的支持。
模式迁移
save()上的部分更新
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源代码分发
dynamallow-0.0.3.tar.gz (10.3 kB 查看哈希值)
构建分发
dynamallow-0.0.3-py2.py3-none-any.whl (15.2 kB 查看哈希值)
关闭
dynamallow-0.0.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9e15ac0f310df0074823199df0f2c8b0b01202fc3a59d1c0a8b999848194206c |
|
MD5 | 3cde0cb76ebd64a1d1167f4c1072fa30 |
|
BLAKE2b-256 | 982b19e2d7fb39a6552843aa0c9a818fc633f1b6136f4ca8974b81a2fef61118 |
关闭
dynamallow-0.0.3-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 271fe5c68b39d20d126284649deb4c5a0c59ff8f938492b6d41059c37fc01077 |
|
MD5 | 0920ab97f5bb180b9abc6f89593591aa |
|
BLAKE2b-256 | f4d4575cc74cba280993f85d6e61f1fed9aaee7ceb1911e7e2d6974abd273892 |