1.1. The awstin.dynamodb.DynamoModel
Class¶
1.1.1. Table Models¶
The elemental object for DynamoDB in awstin
is not the JSON dict, but
instead a awstin.dynamodb.DynamoModel
subclass representing a view
of the data in a table or index.
Each awstin.dynamodb.DynamoModel
subclass should have a
_table_name_
attribute on its class definition which is the name of the
table in DynamoDB the model relates to.
The class should also have definitions of table keys and any additional
attributes you want through awstin.dynamodb.Key
and
awstin.dynamodb.Attr
definitions. By default, the attribute name on
the data model is the property name in DynamoDB, but a property name can also
be specified by passing in a string argument.
Below is a data model representing information for the Movies table in the AWS documentation example.
from awstin.dynamodb import Attr, DynamoModel, Key
class Movie(DynamoModel):
_table_name_ = "Movies"
#: Year the film was made (hash key)
year = Key()
#: Title of the film (sort key)
title = Key()
#: Additional information about the film
info = Attr()
1.1.2. Index Models¶
awstin.dynamodb.DynamoModel
subclasses can also reference local or
global secondary indexes. These work the same as table data models, but in
addition to the _table_name_
attribute, an _index_name_
attribute
should also be provided, defining the name of the index.