Duo

Een krachtige, dynamische, pythonische interface voor AWS DYNAMODB
Download nu

Duo Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • BSD License
  • Prijs:
  • FREE
  • Naam uitgever:
  • David Eyk
  • Uitgever website:
  • http://code.google.com/u/david.eyk/

Duo Tags


Duo Beschrijving

DUO is een Python-module die een paar eenvoudige, pythonische abstracties biedt voor het werken met de Dynamodb van Amazon Web Services. Het is een zeer lichte wrapper rond boto.dynamodb.layer2, dus je hebt volledige toegang tot die uitstekende bibliotheek als je het nodig hebt, maar je hoeft de details niet te zweten als je niet hebt gedaan. Module: >>> Import Duothemodule is niet erg groot (op het moment van dit schrijven, ~ 550 regels). Als u wilt weten hoe iets werkt, moet u het lezen. Creëer uw tabellen in de AWS-console en schrijft vervolgens eenvoudige klassen om deze toegang te krijgen. Duo.table-subklassen worden automatisch geregistreerd bij de DB: >>> Klasse MyhashyTable (Duo.table): ... Table_Name = 'My_hashey_table' ... Hash_Key_Name = 'Slug' ... Range_Name_Name = Geen # Impliciet DefaultDuo. Item is een dunne wikkel rond boto.dynamodb.items.item, met veel syntactische suiker. Duo.item-subklasse worden automatisch geregistreerd bij de DB: >>> Import DateTime >>> Klasse Myhashyitem (Duo.item): ... Table_Name = 'My_Hashey_table' ... Hash_Key_Name = 'Slug' ..... . Slug = Duo.unicodefield () ... my_field = duo.unicodefield (standaard = 'foo') ... on_this_date = duo.datefield (standaard = lambda o: datetime.date.today ()) Databases en tabellen gebruiken DICT -Like toegang syntaxis: >>> db = duo.dynamodb (Key = 'Access_Key', Secret = 'Secret_key') >>> # De juiste tabel-subklasse wordt gematcht per tabelnaam: >>> tabel = duo.dynamodb >>> # De juiste item-subklasse wordt gematcht per tabelnaam: >>> item = tabel >>> # items zijn eigenlijk dict-subklassen, maar dat is niet waar de> >> # plezier is. Ze kunnen alleen Unicode-snaren en gehele getallen opslaan: >>> Item U'new-Item'Specify een veld op een item-subklasse om nuttige gegevenstypen te krijgen: >>> Item.is_newtrue >>> # A Field bestaat aanvankelijk niet ... >>> Item Traceback (Meest recente oproep Laatste): Bestand "...", regel 1, in item KeyError: 'My_field' >> > # Maar we hebben een standaardwaarde opgegeven. >>> Item.my_field'foo '>>> # De standaard, eenmaal toegankelijk, wordt bevolkt: >>> item ' foo '>>> # of we kunnen instellen Onze eigen waarde ... >>> Item.my_field = 'Bar' >>> Item 'Bar' >>> # Eindelijk, we besparen het bij DynamoDB. >>> Item.put () >> > Item.is_newfalsecaching: DUO integreert met elke cache die een python-memcached-compatibele interface implementeert, namelijk het volgende: importeer Pylibmcache = Pylibmc.client () cache.get () cache. Set (, ) cache.delete () Integreer caching door de cache door te geven aan de DB-constructeur: >>> Import Duo >>> db = DUO.DYAMODB (KEY = ' Access_Key ', Secret =' Secret_key ', Cach E = cache) U kunt ook een cache-object opgeven op een per-tabel of per-item basis: >>> klasse myhashytable (duo.table): ... cache = pylibmc.client () ... ... Table_Name = 'My_Hashey_table' ... Hash_Key_Name = 'Slug' ... Range_Key_Name = Geen # Impliciete DefaultCaching is standaard uitgeschakeld, maar u kunt het inschakelen door een cache_duratie op te geven als een integer (0 is Voor altijd): >>> Klasse Myhasheyitem (Duo.item): ... cache_duration = 30 # 30 seconden ...... tabel_name = 'my_hashey_table' ... Hash_Key_Name = 'Slug' ...... Slak = Duo.Unicodefield () ... My_field = Duo.unicodefield (standaard = 'foo') ... on_this_date = duo.datefield (standaard = lambda o: datetime.date.today ()) Cache-toetsen worden bepaald door Hash-toets, bereik sleutel en een cacheprefix (ingesteld op de tabel). Standaard is het Cache Prefix de tabelnaam: >>> tabel = duo.dynamodb >>> Item = tabel >>> item.cache_prefix is niet-integraal >>> Item. _Cache_Key'my_hashey_table_new-item '>>> myhashytable.cache_prefix =' hello_world '>>> item._get_cache_key ()' hello_world_new-item'product's startpagina


Duo Gerelateerde software