micromongo

Screenshot Software:
micromongo
Mga detalye ng Software:
Bersyon: 0.1.4
I-upload ang petsa: 14 Apr 15
Nag-develop: Jason Moiron
Lisensya: Libre
Katanyagan: 2

Rating: nan/5 (Total Votes: 0)

micromongo ay isang maliit na layer sa paligid pymongo na nagbibigay-daan sa iyo upang lumikha ng simpleng ORM-style klase kung saan maaaring gumanap sa pagpapatunay, payagan ang mga tuldok ng access sa mga dokumento, mga auto-wrap resulta queryset, at magbibigay sa iyo ng pre / post na-save Hooks.
Ito ay dinisenyo na may microframeworks sa isip, ngunit application at balangkas agnostiko. Ito ay sinadya upang padaliin ang paggamit ng pymongo at magbigay ng mga tool para sa mga karaniwang idioms, hindi makaharang sa pymongo o mongodb mula sa iyong mga istraktura ng data.
Malugod kang tinatanggap upang buksan ang mga isyu o magpadala ng mga kahilingan sa pull sa github micromongo ni
micromongo gumagawa ng ilang mga pasya sa disenyo sa pangalan ng pagpapagaan na hindi maaaring gumana para sa iyo:
& Nbsp; - & nbsp; micromongo nagpapanatili ng isang solong global na koneksyon, kaya hindi ka maaaring magkaroon ng mga modelo na kumonekta sa maramihang mga server mongodb
& Nbsp; - & nbsp; mayroong isang handfull ng mga pangalan ng modelo at mga pangalan ng dokumento sa katangiang iyon ay hindi gagana sa micromongo mga modelo; ang mga ito ay sakop sa buong doc
& Nbsp; - & nbsp; maaari ka lamang magkaroon ng isa sa bawat modelo koleksyon
sa pagsisimula
Upang magsimula sa micromongo, i-import lang ito:
>>> Mula micromongo import kumonekta, Modelo
>>> C = ikonekta ()
pagkonekta tumatagal sa parehong mga argumento tulad ng koneksyon sa bagay na pymongo, at behaves halos identically, maliban na ito sumusubok na awtomatikong bumalik ang mga resulta ng query na nakabalot sa naaangkop na mga klase Modelo. Ang bagay ng koneksyon na iyong nilikha sa pamamagitan ng tawag na ito ay naka-cache na at ginagamit ng iba't-ibang mga kagamitan sa ORM-style, tulad ng Model.save (), Model.proxy, atbp Kung nais mong kumuha ng malinis, karaniwan ang koneksyon object, maaari mong makakuha ng isa madali :
>>> Mula micromongo import clean_connection
>>> Malinis = clean_connection ()
Tandaan ay hindi kumuha ng mga argument na clean_connection at laging nagbabalik ng malinis na klase ng koneksyon na may parehong mga setting ng kasalukuyang koneksyon micromongo.
Sa mga bagay na ito na koneksyon, maaari kang lumikha ng mga database o gawin ang anumang gagawin mo sa normal na mga bagay pymongo:
>>> Db = c.test_db
>>> Koleksyon = db.test_collection
>>> Collection.save ({"docid": 1, "mabigo": Mali})
>>> Collection.find_one ()
{U'_id ': ObjectId (' ... '), u'fail': False, u'docid ': 1}
Maaari mo ring magpahayag ng iyong sariling modelo para sa isang partikular na koleksyon ng istilong paturol:
>>> Klase TestModel (Modelo):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; koleksyon = 'test_db.test_collection'
>>> Collection.find_one ()

Ang mga klase ay may isang bilang ng mga karagdagang tampok sa loob ng isang diksyunaryo na maaaring gawin silang mas maginhawa upang gamitin. Ang key dokumento ay naa-access ang lahat bilang mga katangian:
>>> T = collection.find_one ()
>>> T.fail
Hindi totoo
>>> T.docid
1
Ang mga dokumento ay madaling ring mananatili sa database:
>>> T.docid = 17
>>> T.save ()
>>> Clean.test_db.test_collection.find_one ()
{U'_id ': ObjectId (' ... '), u'fail': False, u'docid ': 17}
ng pagtukoy sa mga modelo
Sa itaas, ang katangian koleksyon na itinalaga sa aming mga modelo Foo. Ito ay isang shortcut, bagaman; kung database at koleksyon ay nakatalaga nang hiwalay, maaari malaman ang Modelo out ang buong pangalan koleksyon. Kung ang koleksyon at database ay hindi kasalukuyan, tinatangka micromongo upang malaman ito batay sa klase at module pangalan ng iyong Model. Halimbawa, blog.Post ay magiging blog.post, o stream.StreamEntry ay magiging stream.stream_entry. Tahasang ay mas mahusay kaysa implicit, at ito ay hinihikayat na itinakda mo nang manu-mano ang koleksyon.
Bukod sa packing at unpacking mga resulta mula sa database, maaari ring tukuyin ng mga modelo ng spec dokumento na maaaring tukuyin ang mga default at magsagawa ng pagpapatunay bago i-save ang modelo. Kumuha ng walang halaga blog post na modelo:
>>> Mula micromongo.spec import *
>>> Klase Post (Modelo):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; koleksyon = 'test_db.blog_posts'
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; spec = dict (
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; may-akda = Field (kinakailangan = True, ang mga default = 'jmoiron', type = basestring),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; title = Field (kinakailangan = False, default = '', i-type = basestring),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; -publish = Field (kinakailangan = True, ang mga default = False, type = [True, False]),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; katawan = 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

Ang ilang mga bagay ay pumunta sa dito. Mga patlang na may isang default ay nasimulan sa default na kung ang mga ito ay kinakailangan o hindi. Kung ang isang kinakailangang patlang ay walang default, ito ay nasimulan sa Wala.
Patlang ng maaaring kumuha ng isang argument uri, na maaaring maging isang callable na tumatagal ng isang halaga at nagbalik Tama o Mali, isa o higit pang mga uri ng base, o ang isa o higit pang mga halaga. Kung ang isa o higit pang mga uri ay ibinigay, isinstance ay ginagamit upang masubok na mga halaga ay ang tamang uri. Kung ang isa o higit pang mga halaga ay ibinigay, ang Field ay gumaganap bilang isang uri ng enum, pagsusuri na halaga ang nasa hanay ng mga halaga. Kung walang uri ay ibinibigay, pagpapatunay palaging dumadaan sa isang field maliban kung ito ay kinakailangan at absent.
Kung ang isang field sa p ay binigyan ng di-wastong uri, pagkatapos ay isang ValueError ay tinataas:
>>> P.title = 10
>>> P.save ()
Traceback (pinakahuling tawag huling):
& Nbsp; ...
ValueError: Key ay hindi tumugma sa spec: ['title']
>>> Del p.author
>>> P.save ()
Traceback (pinakahuling tawag huling):
& Nbsp; ...
ValueError: Nawawalang mga field: ['may-akda'], Di-wastong field: ['title']
>>> P.title = 'Aking unang blogpost'
>>> P.author = 'jmoiron'
>>> P.published = True
>>> P.body = u "Ito ang aking unang post sa blog .. & nbsp; Ako kaya nasasabik!"
>>> P.save ()
Model.find
Para sa kaginhawahan at dry, Model.find ay isang classmethod na gagamitin ng cursor micromongo upang magbigay ng hanapin laban sa kanan koleksyon. Ang pamamaraan na ito behaves eksaktong kapareho ng pymongo ng Collection.find.
bahagyang binagong Cursor klase micromongo ay ginagawang ding Django-inspired na paraan order_by magagamit sa lahat ng mga cursors (mahanap at anumang bagay chain-off mo kung ito ay nagbabalik ng isang cursor). Maaari pumasa sa isa o higit pang mga pangalan ng patlang, na may isang opsyonal na leading '-', upang ayusin ang mga bagay sa pamamagitan ng pataas o pababang pagkakasunud-sunod.
Ang mga pagbabagong ito daan sa iyo upang gamitin ang karamihan ng kapangyarihan ng pymongo nang hindi na kinakailangang i-import ito, at nagbibigay-daan sa iyo maiwasan ang walang kailangan na pag-uulit ng lokasyon ng iyong data.
field subclassing
Ikaw ay hinihikayat na lumikha ng iyong sariling mga Patlang na gawin kung ano ang gusto mo. Subclasses Field ay may hook-andar pre_validate na tumagal ng isang papasok na halaga at maaari itong ibahin ang anyo gayunpaman nila gusto. Tandaan na ito ay gagana lamang kung ang mga patlang ay aktwal na naroroon; kaya upang makakuha ng isang bagay tulad ng isang auto_now_add sa isang DateTimeField, gugustuhin mong gawin ang mga kinakailangang ito at may pre_validate nito i Wala sa datetime.datetime.now ()

Mga Kinakailangan :.

  • Python

Katulad na software

SQLite Export
SQLite Export

20 Feb 15

MongoMultiMaster
MongoMultiMaster

20 Feb 15

XQuark Bridge
XQuark Bridge

2 Jun 15

Qore Oracle Module
Qore Oracle Module

19 Feb 15

Iba pang mga software developer ng Jason Moiron

speedparser
speedparser

14 Apr 15

pdf2zip
pdf2zip

11 May 15

redtape
redtape

14 Apr 15

Mga komento sa micromongo

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!