micromongo

Programinė įranga Screenshot:
micromongo
Programinė detalės:
Versija: 0.1.4
Įkėlimo datą: 14 Apr 15
Kūrėjas: Jason Moiron
Licencija: Nemokamai
Populiarumas: 2

Rating: nan/5 (Total Votes: 0)

micromongo yra nedidelis sluoksnis aplink pymongo, kuri leidžia jums sukurti paprastus ORM stiliaus klases, kurios gali atlikti patvirtinimą, leidžia dot susipažinti su dokumentais, Auto-wrap queryset rezultatus, ir duoti jums iš anksto / Rašyti išskyrus tuomet kabliukais.
Jis sukurtas su microframeworks galvoje, tačiau yra taikymas ir sistema agnostikas. Jis yra skirtas supaprastinti naudojimą pymongo ir teikia priemones bendrų idiomų, ne užtemdyti pymongo ar mongodb iš savo duomenų struktūras.
Maloniai kviečiame atidaryti klausimus arba siųsti traukos prašymus dėl micromongo anketa GitHub
micromongo daro keletą dizaino sprendimus supaprastinimo pavadinimas, kuris gali ne darbą už jus:
& Nbsp; - & nbsp; micromongo palaiko vieną bendrą ryšį, todėl jūs negalite turėti modelius, kurie prijungti prie kelių serverių mongodb
& Nbsp; - & nbsp; yra modelio pavadinimus ir dokumentų atributų pavadinimų, kad negali dirbti su micromongo modelių handfull; jie bus įtraukti į pilni docs
& Nbsp; - & nbsp; Jūs galite turėti tik vieną modelį už kolekcijos
pradedate
Norėdami pradėti su micromongo, tiesiog importuoti:
>>> Iš micromongo importo prisijungti, Modelis
>>> C = prijungti ()
Prijunkite trunka tuos pačius argumentus kaip pymongo prisijungimas objektą ir elgiasi beveik identiškai, išskyrus tai, kad jis bando automatiškai grįžti užklausos rezultatus supakuotas į tinkamas modelis klases. Jungtis objektas, jums sukurti per šį kvietimą bus išsaugota ir naudojama įvairių ORM stiliaus įrenginius, pavyzdžiui, Model.save (), Model.proxy, ir tt Jei norite švarią, standartinis Connection objektą, galite gauti vieną lengvai :
>>> Iš micromongo importo clean_connection
>>> Švarus = clean_connection ()
Atkreipkite dėmesį, kad clean_connection neatsižvelgiama argumentus ir visada grįžti švarų Connection klasę su tais pačiais nustatymais, kaip dabartinės micromongo ryšį.
Su šių objektų prijungimo, galite sukurti duomenų bazes arba daryti ką darytumėte su normaliomis pymongo objektų:
>>> Db = c.test_db
>>> Kolekcija = db.test_collection
>>> Collection.save ({"docId": 1, "nepavyks": Klaidingai})
>>> Collection.find_one ()
{U'_id ": ObjectID (" ... "), u'fail": Apgaulingi, u'docid ": 1}
Jūs taip pat gali paskelbti savo modelį konkrečiam rinkimo deklaratyvaus stiliaus:
>>> Klasės TestModel (modelis):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kolekcija = 'test_db.test_collection "
>>> Collection.find_one ()

Šios klasės turi papildomų funkcijų, nei žodyno, kurie gali padaryti jiems daug patogiau naudoti, skaičių. Dokumente raktai visi prieinami kaip atributus:
>>> T = collection.find_one ()
>>> T.fail
Netikras
>>> T.docid
1
Dokumentuose taip pat lengvai išliko iki duomenų bazėje:
>>> T.docid = 17
>>> T.save ()
>>> Clean.test_db.test_collection.find_one ()
{U'_id ": ObjectID (" ... "), u'fail": Apgaulingi, u'docid ": 17}
apibrėžiantys modeliai
Svarbiausia, kad kolekcija atributas buvo paskirtas į mūsų Foo modelį. Tai buvo nuoroda, nors; jei duomenų bazė ir surinkimo priskiriami atskirai, Modelis gali išsiaiškinti visą rinkinio pavadinimą. Jei rinkimas ir duomenų bazės nėra, micromongo bando suprasti jį remiasi klasės ir modulio pavadinimą savo modelio. Pavyzdžiui, blog.Post taps blog.post arba stream.StreamEntry taps stream.stream_entry. Aiškus yra geriau nei numanoma, ir tai skatina tai, kad jūs nustatote kolekciją rankiniu būdu.
Be pakavimo ir išpakavimo rezultatus iš duomenų bazės, modeliai taip pat gali apibrėžti spec dokumentą, kuriame galite nustatyti numatytuosius ir atlikti patvirtinimą prieš taupymo modelį. Paimkite trivialus dienoraštyje modelis:
>>> Iš micromongo.spec importo *
>>> Klasės Post (modelis):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; surinkimo = 'test_db.blog_posts "
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Spec = dict (
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; author = laukas (privaloma = Tiesa, pagal nutylėjimą = 'jmoiron "type = basestring)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; title = laukas (privaloma = false, pagal nutylėjimą = '', type = basestring)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; paskelbta = laukas (privaloma = Tiesa, pagal nutylėjimą = false, type = [true, false]),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kūno = laukas (tipas = Unicode),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; timestamp = laukas ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; )
>>> P = Post.new ()
>>> P

Keletas dalykų, kurie vyksta čia. Laukai, kad numatytasis yra inicializuoti tą nutylėjimą, ar jie yra privalomi, ar ne. Jei privalomas laukas neturi įsipareigojimų nevykdymo, tai inicializuoti Nėra.
Laukai gali imtis tipo argumentą, kuris gali būti arba pareikalavimo, kad mano vertę ir grąžina Tiesa ar klaidinga, vieną ar daugiau bazinių tipų, arba vieną ar daugiau reikšmių. Jei vienas ar daugiau rūšių yra teikiamos, isinstance yra naudojama patikrinti, kad vertybės yra reikiamo tipo. Jei vienas ar daugiau reikšmės yra numatyta, laukas veikia kaip ENUM tipo, tikrinti, kad reikšmės yra savo vertybių rinkinį. Jei tipas yra nurodytas, patvirtinimas visada eina ant lauko, jei jis reikalingas ir nebūti.
Jei P laukas suteikta netinkamą tipą, tada ValueError pakeliamas:
>>> P.title = 10
>>> P.save ()
Traceback (naujausia skambutis paskutinis):
& Nbsp; ...
ValueError: Raktai neatitiko spec: ['pavadinimas']
>>> Del p.author
>>> P.save ()
Traceback (naujausia skambutis paskutinis):
& Nbsp; ...
ValueError: Trūksta sritys: ['autorius'], Negaliojantys sritys: ['pavadinimas']
>>> P.title = 'Mano pirmasis blogpost "
>>> P.author = 'jmoiron "
>>> P.published = True
>>> P.body = u "Tai mano pirmasis dienoraštyje .. & nbsp; Aš taip susijaudinęs!"
>>> P.save ()
Model.find
Dėl patogumo ir sausas, Model.find yra classmethod kad naudosime micromongo anketa žymeklį išduoti randa prieš dešinėje kolekcija. Šis metodas elgiasi lygiai taip pat, kaip pymongo anketa Collection.find.
micromongo anketa šiek tiek pakeisti kursoriaus klasę taip pat pademonstravo Django įkvėpė order_by metodą prieinama visiems pirmtakų (rasti ir viską, ką grandinėmis išjungti, jeigu jis grąžina žymeklį). Galite pereiti vieną ar daugiau laukų pavadinimus, su pasirenkamu pirmaujančių "-", rūšiuoti dalykus didėjančia arba mažėjančia tvarka.
Šie pokyčiai leidžia naudoti didžiąją pymongo galios nereikia importuoti, ir leidžia išvengti nereikalingo kartojimosi jūsų duomenis vietoje.
srityje sukuriate
Jūs esate raginami sukurti savo laukus, daryti tai, ką norite. Lauko poklasiai turi kablys funkcija pre_validate kurie priimti įeinantį vertę ir gali paversti ją Tačiau jie nori. Atkreipkite dėmesį, kad tai bus tik tada, kai laukai yra faktiškai pateikti; taip gauti kažką panašaus į dėl DateTimeField auto_now_add, jūs norite, kad jis reikalingas, ir turi savo pre_validate įjungti Nieko į datetime.datetime.now ()

Reikalavimai :.

  • Python

Panaši programinė įranga

Kita programinė įranga kūrėjas Jason Moiron

speedparser
speedparser

14 Apr 15

pdf2zip
pdf2zip

11 May 15

redtape
redtape

14 Apr 15

Komentarai micromongo

Komentarai nerastas
Pridėti komentarą
Pasukite ant paveikslėlio!