micromongo

Software kuvakaappaus:
micromongo
Ohjelmiston tiedot:
Versio: 0.1.4
Lähetyksen päivämäärä: 14 Apr 15
Kehittäjä: Jason Moiron
Lupa: Vapaa
Suosio: 2

Rating: nan/5 (Total Votes: 0)

micromongo on pieni kerros noin pymongo, jonka avulla voit luoda yksinkertaisia ​​ORM-style luokat joka voi suorittaa validointi, anna piste tutustua asiakirjoihin, auto-wrap queryset tuloksia, ja antaa sinulle pre / post Tallenna koukkuja.
Se on suunniteltu microframeworks mielessä, mutta on sovellus ja puitteet agnostikko. Sen tarkoituksena on yksinkertaistaa käyttöä pymongo ja tarjota välineitä yhteisten sanontojen, ei hämärtää pymongo tai MongoDB teidän tietorakenteita.
Olet tervetullut avata kysymyksiä tai lähettää vetää pyyntöjä micromongo n github
micromongo tekee muutaman suunnittelu päätöksiä yksinkertaistamisen nimissä, joita ei ehkä toimi sinulle:
& Nbsp; - & nbsp; micromongo ylläpitää yksi yleinen yhteys, joten et voi olla malleja, jotka voi liittää useita MongoDB palvelimia
& Nbsp; - & nbsp; olemassa kourallisen mallien nimet ja asiakirjan ominaisuuden nimet eivät toimi micromongo malleja; nämä katetaan täysimääräisesti docs
& Nbsp; - & nbsp; sinulla voi olla vain yksi malli per kokoelma
aloittelemassa
Voit aloittaa pois micromongo, vain tuoda se:
>>> Alkaen micromongo tuonti yhteyden, Malli
>>> C = yhteyden ()
Liitä vie samat perustelut kuin pymongo n Connection esine, ja käyttäytyy lähes identtisesti, paitsi että se yrittää automaattisesti palauttaa kyselyn tulokset kääritty sopiva malli luokissa. Liitäntäkohteeseen että luot Puhelun kautta välimuistiin ja käyttää eri ORM-mukavuuksiin, kuten Model.save (), Model.proxy jne Jos haluat puhdas, vakio Connection esine, voit saada yksi helposti :
>>> Alkaen micromongo tuonti clean_connection
>>> Puhdas = clean_connection ()
Huomaa, että clean_connection ei ota argumentteja ja palauttaa aina puhdas Connection luokan samoilla asetuksilla kuin nykyinen micromongo yhteys.
Näillä yhteysolioiden, voit luoda tietokantoja tai tehdä mitä tekisit normaali pymongo esineitä:
>>> Db = c.test_db
>>> Kokoelma = db.test_collection
>>> Collection.save ({"docid": 1, "hylätty": False})
>>> Collection.find_one ()
{U'_id ": ObjectId (" ... "), u'fail": False, u'docid ": 1}
Voit myös ilmoittaa oman mallin tietyn kokoelma julistava tyyliin:
>>> Luokan TestModel (malli):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kokoelma = 'test_db.test_collection'
>>> Collection.find_one ()

Nämä luokat on useita lisäominaisuuksia yli sanakirjaa voi tehdä niistä paljon helpompi käyttää. Asiakirja näppäimet ovat kaikki saatavilla ominaisuuksina:
>>> T = collection.find_one ()
>>> T.fail
Väärä
>>> T.docid
1
Asiakirjat ovat myös helposti jatkui tietokantaan:
>>> T.docid = 17
>>> T.save ()
>>> Clean.test_db.test_collection.find_one ()
{U'_id ": ObjectId (" ... "), u'fail": False, u'docid ": 17}
määritellään malleja
Yllä tiedonkeruun ominaisuudeksi on määritetty meidän Foo malli. Tämä oli oikotie, vaikka; jos tietokanta ja keräys osoitetaan erikseen, malli voi selvittää koko kokoelman nimi. Jos kerääminen ja tietokanta eivät ole läsnä, micromongo yrittää tajuta se perustuu luokan ja moduulin nimi Malli. Esimerkiksi, blog.Post tulee blog.post, tai stream.StreamEntry tulee stream.stream_entry. Explicit on parempi kuin implisiittinen, ja se kannusti, että asetat kokoelma käsin.
Paitsi pakkaamisesta ja purkamisesta tulokset tietokannasta, malleja voi myös määritellä spec asiakirja, joka voi määritellä oletusasetukset ja tehdä vahvistus ennen tallentamista malli. Ota triviaali blogikirjoitus malli:
>>> Alkaen micromongo.spec tuonti *
>>> Luokan kirjeenä (malli):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kokoelma = 'test_db.blog_posts'
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; spec = dict (
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; tekijä = Field (vaaditaan = True, oletusarvo = "jmoiron ', type = basestring),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; title = Field (vaaditaan = False, oletus = '', type = basestring),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; julkaistu = Field (vaaditaan = True, oletus = 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

Muutamia asioita on tekeillä. Kentät, jotka on oletuksena alustetaan että oletuksena, ovatko ne tarpeen vai ei. Jos haluttu kenttä ei ole oletuksena, se alustetaan mitään.
Kentät voivat ottaa tyyppi argumentti, joka voi olla joko vaadittaessa maksettavaa, joka vie arvoa ja tosi tai epätosi, yhden tai useamman emäksen tyyppiä, tai yksi tai useampia arvoja. Jos yhden tai useamman tyyppisten tarjotaan, isinstance käytetään testaamaan että arvot ovat oikeanlaisia. Jos yksi tai useampi arvot annetaan, Field toimii ENUM tyyppi, tarkistaa, että arvot ovat sen arvomaailman. Jos ei tyyppi annetaan, validointi aina kulkee pellolla ellei sitä tarvita ja poissa.
Jos kenttä p annetaan virheellinen tyyppi, sitten ValueError nostetaan:
>>> P.title = 10
>>> Power Save as ()
Paluuseurannan (viimeisin puhelu viimeinen):
& Nbsp; ...
ValueError: Näppäimet eivät täsmää spec: ["nimi"]
>>> Del p.author
>>> Power Save as ()
Paluuseurannan (viimeisin puhelu viimeinen):
& Nbsp; ...
ValueError: Puuttuu kentät: ["kirjoittaja"] Virheellinen kentät: ["nimi"]
>>> P.title = "Minun ensimmäinen kirjoitus"
>>> P.author = 'jmoiron'
>>> P.published = True
>>> P.body = u "Tämä on minun ensimmäinen blogi .. & nbsp; Olen niin innoissani!"
>>> Power Save as ()
Model.find
Mukavuuden ja kuiva, Model.find on classmethod joka käyttää micromongo n kohdistin antaa löytää vastaan ​​oikea kokoelma. Tämä menetelmä toimii täsmälleen sama kuin pymongo n Collection.find.
micromongo n hieman muutettu Cursor luokka tekee myös Django-vaikutteita order_by menetelmä kaikkien osoittimet (löytää ja jotain ketjuttaa pois, jos se palaa kursori). Voit siirtää yhden tai useamman kentän nimet, joiden valinnainen johtava "-", lajitella asioita nousevassa tai laskevassa järjestyksessä.
Nämä muutokset voit käyttää eniten valtaa pymongo ilman tuoda se, ja voit välttää tarpeetonta toistamista sijainnin tietosi.
kenttä subclassing
Sinun kannattaa luoda omia kenttiä, että tee mitä haluat. Kenttä alaluokkien on koukku toiminto pre_validate joka ottaa saapuvan arvoa ja voi muuttaa sitä kuitenkin he haluavat. Huomaa, että tämä toimii vain, jos kentät ovat tosiasiallisesti; niin saat jotain auto_now_add on DateTimeField, haluat tehdä sitä vaaditaan, ja että sen pre_validate kääntää yhtään osaksi datetime.datetime.now ().

Vaatimukset :

  • Python

Vastaavia ohjelmistoja

conrad
conrad

11 May 15

shove
shove

20 Feb 15

XQuark Bridge
XQuark Bridge

2 Jun 15

DB Solo
DB Solo

17 Feb 15

Muu ohjelmistojen kehittäjä Jason Moiron

speedparser
speedparser

14 Apr 15

pdf2zip
pdf2zip

11 May 15

redtape
redtape

14 Apr 15

Kommentit micromongo

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!