micromongo

Software screenshot:
micromongo
Software ətraflı:
Version: 0.1.4
Tarixi Upload: 14 Apr 15
Geliştirici: Jason Moiron
Lisenziya: Pulsuz
Məşhurluq: 40

Rating: 5.0/5 (Total Votes: 1)

micromongo siz qiymətləndirmə yerinə sənədləri, avtomatik paketi queryset nəticələrinə dot imkanı, və qarmaqlar qazanc pre / post verə bilər ki, sadə ORM-stil dərsləri yaratmaq üçün imkan verir pymongo ətrafında kiçik bir təbəqədir.
Bu nəzərə microframeworks ilə nəzərdə tutulmuşdur, lakin tətbiqi və çərçivə aqnostik edir edir. Bu pymongo istifadə asanlaşdırmaq və ümumi deyim üçün alətlər təmin, sizin data strukturları pymongo və ya MongoDB kölgədə deyil deməkdir.
Siz məsələləri açmaq və ya micromongo nin github açılan sorğu göndərmək üçün açıqdır
micromongo sizin üçün işləməyə bilər sadələşdirilməsi adı bir neçə dizayn qərarlar qəbul edir:
& Nbsp; - & nbsp; micromongo bir qlobal əlaqə saxlayır, belə ki, çox MongoDB server qoşulmaq modelləri ola bilməz
& Nbsp; - & nbsp; model adları və micromongo modelləri ilə işləməyəcək sənəd atributu adları bir handfull var; bu tam docs əhatə olunacaq
& Nbsp; - & nbsp; Yalnız kolleksiya başına bir model ola bilər
başlamaq
Micromongo ilə başlamaq üçün, yalnız idxal:
>>> Micromongo idxal əlaqə ki, Model
>>> C =) (əlaqə
connect pymongo nin Connection obyekti kimi eyni arqumentlər edir və bu, avtomatik olaraq müvafiq Model dərsləri bükülmüş sorğu nəticələri qayıtmaq üçün çalışır ki, istisna olmaqla, demək olar ki, eyni davranır. Bir təmiz, standart Connection obyekt istəyirsinizsə, bu zəng vasitəsilə yaratmaq əlaqə obyekt cached və müxtəlif ORM-stil müəssisələri tərəfindən istifadə olunacaq, və s. Model.save (), Model.proxy kimi, asanlıqla bir əldə edə bilərsiniz :
>>> Micromongo idxal clean_connection dən
>>> Təmiz = clean_connection ()
Arqumentlər deyil ki, clean_connection Qeyd edək həmişə mövcud micromongo əlaqədar eyni parametrləri ilə təmiz Connection sinif qayıdacaqlar.
Bu əlaqə obyektləri ilə, siz verilənlər bazası yarada və ya normal pymongo obyektləri ilə nə siz ki edin:
>>> Db = c.test_db
>>> Kolleksiyası = db.test_collection
>>> Collection.save ({"Docid" 1 "uğursuz" False})
>>> Collection.find_one ()
{U'_id: OBJECTID ("..."), u'fail: False, u'docid: 1}
Siz həmçinin deklarativ üslubunda xüsusi bir toplanması üçün öz Model elan edə bilər:
>>> Sinif TestModel (Model):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kolleksiya = 'test_db.test_collection'
>>> Collection.find_one ()

Bu dərsləri onlara daha rahat istifadə edə bilər ki, lüğət üzərində əlavə xüsusiyyətləri bir sıra var. sənəd düymələri atributları kimi bütün erişilebilir:
>>> T = collection.find_one ()
>>> T.fail
Saxta
>>> T.docid
1
sənədlər də asanlıqla bazasında davam edir:
>>> T.docid = 17
>>> T.save ()
>>> Clean.test_db.test_collection.find_one ()
{U'_id: OBJECTID ("..."), u'fail: False, u'docid: 17}
müəyyən modelləri
Yuxarıda toplanması atributu bizim Foo model verilib. Bu baxmayaraq, qısa idi; verilənlər bazası və toplanması ayrıca verilir əgər, Model tam kolleksiyası adı anlamaq olar. Toplanması və verilənlər bazası mövcud deyilsə, micromongo sizin Model sinif və modul adı əsasında onu anlamaq üçün çalışır. Məsələn, blog.Post blog.post olacaq, və ya stream.StreamEntry stream.stream_entry olacaq. Explicit gizli daha yaxşıdır və bu, özünüz kolleksiya müəyyən təşviq edir.
Qablaşdırma və verilənlər bazası nəticələri açıldığı yanaşı, modellər də u mənim müəyyən və model qənaət əvvəl qiymətləndirmə edə bilərsiniz ki, bir spec sənəd müəyyən edə bilərsiniz. Bir mənasız blog post model edin:
>>> Micromongo.spec idxal *
>>> Sinif Post (Model):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kolleksiya = 'test_db.blog_posts'
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; spec = dict (
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Müəllif sahəsi (= Doğrudur, default = 'jmoiron "type = basestring tələb olunur) =
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; title = Field (lazım = False, default = '' type = basestring)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; nəşr = Alan (= lazım Doğrudur, default = False, type = [True, False]),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Bədən = Alan (type = Unicode)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; damgası = Field ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; )
>>> P = Post.new ()
>>> P

Bir neçə şey burada gedir. Bir default var Fields onlar tələb və ya olub ki, default başlatılmış olunur. Lazımi defolt yoxdur, bu, heç biri başlatılmış edir.
Fields ya bir və ya daha çox baza növləri, və ya bir və ya daha çox dəyərlər dəyəri edir və doğru və ya yalan qaytarır alına bilən ola bilər növü dəlil, bilər. Bir və ya daha çox növ təmin varsa, isinstance dəyərlər sağ növü var ki, test üçün istifadə olunur. Bir və ya daha çox dəyərlər təmin varsa, Field dəyərlər dəyərlər öz dəsti var ki, yoxlanılması, bir enum növü kimi çıxış edir. Heç bir növü verilir Əgər tələb yoxdur halda, qiymətləndirmə həmişə bir sahəsində edir.
P sahəsində yalnış növü verilir, onda bir ValueError qaldırdı olunur:
>>> P.title = 10
>>> P.save ()
Traceback (ən son zəng, son):
& Nbsp; ...
ValueError: Keys spec uyğun gəlmədi: ['adı']
>>> Del p.author
>>> P.save ()
Traceback (ən son zəng, son):
& Nbsp; ...
ValueError: Yarımçıq Sahələri: ['müəllif], Invalid Sahələri: [' title ']
>>> P.title = 'Mənim ilk blogpost "
>>> P.author = 'jmoiron'
>>> P.published = True
>>> P.body = u "Bu mənim ilk blog post .. & nbsp, mən heyecan alıram!"
>>> P.save ()
Model.find
Rahatlığı və DRY üçün Model.find sağ kolleksiya qarşı tapmaq vermək micromongo kursorunu istifadə edəcək bir classmethod edir. Bu üsul dəqiq pymongo nin Collection.find eyni davranır.
micromongo nin az redaktə Kursor sinif də bütün cursors (tapmaq və bir kursor qaytarır əgər bir şey off zəncir) mövcud Django-ruhlandırmış order_by metodu edir. Siz isteğe aparıcı ilə bir və ya daha çox sahəsində adları keçə bilər '-', artan və ya azalan əmri ilə hər şeyi düzmək üçün.
Bu dəyişikliklər idxal olmadan pymongo hakimiyyəti çox istifadə etməyə imkan verir və sizin data yeri lüzumsuz təkrar qarşısını almaq imkan verir.
sahəsində subclassing
Siz istədiyiniz nə öz Fields yaratmaq üçün tövsiyə olunur. Field subclasses Daxil olan dəyəri almaq və lakin istədiyiniz çevirmək bilər ki, bir çəngəl funksiyası pre_validate var. Sahələri həqiqətən mövcuddur, bu yalnız işləyəcək Qeyd edək ki, belə bir DateTimeField bir auto_now_add kimi bir şey almaq üçün, tələb etmək istəyirəm və pre_validate datetime.datetime.now () daxil Yox çevirmək olacaq

tələblər .

  • Python

Oxşar proqram

Products.Undoer
Products.Undoer

15 Apr 15

Jude
Jude

3 Jun 15

HyperDex
HyperDex

20 Feb 15

Geliştirici digər proqram Jason Moiron

speedparser
speedparser

14 Apr 15

redtape
redtape

14 Apr 15

pdf2zip
pdf2zip

11 May 15

Şərh micromongo

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!