micromongo

Software screenshot:
micromongo
Podrobnosti Software:
Verze: 0.1.4
Datum uploadu: 14 Apr 15
Vývojka: Jason Moiron
Licence: Volný
Popularita: 2

Rating: nan/5 (Total Votes: 0)

micromongo je malý vrstva kolem pymongo, který vám umožní vytvářet jednoduché ORM stylu třídy, které mohou provádět ověřování, umožňují dot přístup k dokumentům, auto-wrap výsledky queryset, a dá vám před / po zachránit háčky.
Je navržen s microframeworks v mysli, ale je aplikace a rámec agnostik. Je určen pro zjednodušení používání pymongo a poskytovat nástroje pro společné idiomy, nezakrýval pymongo nebo MongoDB z datových struktur.
Jste vítáni k otevření otázky nebo poslat žádosti tahat na micromongo je GitHub
micromongo dělá několik rozhodnutí o návrhu ve jménu zjednodušení, které nemusí pracovat pro vás:
& Nbsp; - & nbsp; micromongo udržuje jediné globální spojení, takže není možné mít modely, které se připojují k více serverům MongoDB
& Nbsp; - & nbsp; existuje handfull jmen modelů a dokumentů, jmen atributů, které nebudou pracovat s micromongo modelů; tyto budou zahrnuty v plné docs
& Nbsp; - & nbsp; můžete mít pouze jeden model za sběr
Začínáme
Chcete-li začít s micromongo, stačí jej importovat:
>>> Z micromongo import připojit, Model
>>> C = connect ()
connect bere stejné argumenty jako pymongo je objekt připojení, a chová se téměř identicky, kromě toho, že se pokusí automaticky vrátit výsledky dotazu zabalené do příslušných tříd modelu. Spojení objekt, který vytvoříte pomocí této výzvy bude z cache a používají různé ORM stylu zařízení, jako Model.save (), Model.proxy, atd Chcete-li čistý, standardní připojení objektu, můžete získat jeden snadno :
>>> Z micromongo dovozu clean_connection
>>> Clean = clean_connection ()
Všimněte si, že clean_connection nebere argumenty a vždy vrátí připojení čistou třídu se stejným nastavením jako aktuální připojení micromongo.
S těmito objekty připojení, můžete vytvořit databáze, nebo dělat cokoliv, co by se s běžnými pymongo objekty:
>>> Db = c.test_db
>>> Kolekce = db.test_collection
>>> Collection.save ({"docid": 1, "selhání": false})
>>> Collection.find_one ()
{U'_id ": ObjectId (" ... "), u'fail": False, u'docid ": 1}
Můžete si také deklarovat svůj vlastní model pro konkrétní kolekci v deklarativní stylu:
>>> Třída TestModel (Model):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kolekce = 'test_db.test_collection'
>>> Collection.find_one ()

Tyto třídy mají řadu dalších funkcí přes slovník, který můžete udělat je mnohem pohodlnější používání. Klíče dokumentů jsou přístupné atributy:
>>> T = collection.find_one ()
>>> T.fail
Falešný
>>> T.docid
1
Tyto dokumenty jsou také snadno přetrvával do databáze:
>>> T.docid = 17
>>> T.save ()
>>> Clean.test_db.test_collection.find_one ()
{U'_id ": ObjectId (" ... "), u'fail": False, u'docid ": 17}
definují modely
Nad atribut sbírka byla přidělena do našeho Foo modelu. To byla zkratka, ale; pokud databáze a kolekce jsou přiřazeny samostatně, může model zjistit úplný název kolekce. V případě, že sběr a databáze nejsou k dispozici, micromongo pokusí se přijít na to, založený na třídě a modulu název vašeho modelu. Například, blog.Post stane blog.post, nebo stream.StreamEntry bude stream.stream_entry. Explicitní je lepší než implicitní, a to je povzbudivé, že ručně nastavit kolekce.
Kromě balení a vybalování výsledky z databáze, modely mohou také definovat spec dokument, který lze definovat výchozí nastavení a provést ověření před uložením modelu. Pak se triviální blog příspěvek modelu:
>>> Z micromongo.spec import *
>>> Třída Post (Model):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kolekce = 'test_db.blog_posts "
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; spec = dict (
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; autor = Field (vyžadováno = True, default = 'jmoiron', type = basestring),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; title = Field (required = False, default = '', type = basestring),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; publikoval = Field (vyžadováno = True, default = False, type = [true, false]),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; body = Field (type = unicode),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; timestamp = Field (),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; )
>>> P = Post.new ()
>>> P

Pár věcí se tady děje. Pole, které mají výchozí připraveny k této třídy, zda jsou potřebné, nebo ne. Je-li povinné pole nemá výchozí, je to inicializaci žádné.
Pole může trvat typu argument, který může být buď callable který má hodnotu a vrátí hodnotu True nebo False, jeden nebo více typů základních, nebo jeden nebo více hodnot. Jsou-li jeden nebo více typů za předpokladu, isinstance se používá k testování, že hodnoty jsou správný typ. Jsou-li jedna nebo více hodnot za předpokladu, pole působí jako typ výčtu, ověření, zda hodnoty jsou v sadě hodnot. Pokud není uveden žádný typ, ověřování vždy předává na poli, pokud je to nutné, a chybí.
Je-li pole p je dána neplatný typ, pak ValueError se zvyšuje:
>>> P.title = 10
>>> P.save ()
TraceBack (poslední hovor poslední):
& Nbsp; ...
ValueError: Keys neodpovídá specifikaci: ['titul']
>>> Del p.author
>>> P.save ()
TraceBack (poslední hovor poslední):
& Nbsp; ...
ValueError: Chybějící položky: ['autora] Neplatné pole: [' title ']
>>> P.title = 'Moje první BLOGPOST "
>>> P.author = 'jmoiron'
>>> P.published = True
>>> P.body = u "Toto je můj první blog post .. & nbsp; Jsem tak nadšená!"
>>> P.save ()
Model.find
Pro pohodlí a suché, Model.find je classmethod, který bude používat kurzor micromongo k vydání nálezu k pravé kolekce. Tato metoda se chová úplně stejně jako pymongo je Collection.find.
micromongo mírně upravený Cursor třída také dělá Django inspirovaný metodou order_by k dispozici všem kurzorů (najít a vše, co zřetězení vypnout, pokud se vrátí kurzor). Můžete předat jeden nebo více názvů polí, s volitelným vedením "-", aby třídit věci podle vzestupně nebo sestupně.
Tyto změny umožňují používat většinu moci pymongo, aniž by museli dovážet, a umožňuje vyhnout se zbytečnému opakování umístění dat.
Pole subclassing
Doporučujeme vám umožní vytvořit si vlastní pole, které dělají to, co chcete. Terénní podtřídy mají funkci hák pre_validate který přijetí příchozího hodnotu a může proměnit ji však chtějí. Všimněte si, že to bude fungovat pouze, pokud jsou skutečně přítomen pole; tak, aby si něco jako auto_now_add na DateTimeField, budete chtít, aby bylo nutné, a mít jeho pre_validate obrátit Žádný do datetime.datetime.now ()

Požadavky na :.

  • Python

Podobný software

GTKO
GTKO

11 May 15

DataCleaner
DataCleaner

27 Sep 15

sgwi
sgwi

20 Feb 15

RedStore
RedStore

11 May 15

Ostatní software developer Jason Moiron

pdf2zip
pdf2zip

11 May 15

speedparser
speedparser

14 Apr 15

redtape
redtape

14 Apr 15

Komentáře k micromongo

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!