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

Qore Tibae Module
Qore Tibae Module

20 Feb 15

PgAdmin III
PgAdmin III

17 Feb 15

datanommer
datanommer

20 Feb 15

XQuark Bridge
XQuark Bridge

2 Jun 15

Ostatní software developer Jason Moiron

speedparser
speedparser

14 Apr 15

pdf2zip
pdf2zip

11 May 15

redtape
redtape

14 Apr 15

Komentáře k micromongo

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