micromongo

Yazılım ekran görüntüsü:
micromongo
Yazılım detaylar:
Versiyon: 0.1.4
Qayıt: 14 Apr 15
Geliştirici: Jason Moiron
Lisans: Ücretsiz
Popülerlik: 2

Rating: nan/5 (Total Votes: 0)

micromongo Eğer doğrulama gerçekleştirmek belgeler, oto-wrap QuerySet sonuçlarına nokta erişimine izin ve size kanca kaydetmek öncesi / sonrası verebilir basit ORM-tarzı sınıfları oluşturmak için olanak sağlayan pymongo etrafında küçük bir tabakadır.
Bu akılda microframeworks ile tasarlanmış, ancak uygulama ve çerçeve agnostik olduğunu var. Bu pymongo kullanımını kolaylaştırmak ve ortak deyimler için araçlar sağlar, veri yapıları gelen pymongo veya MongoDB gizlemek için değil içindir.
Siz sorunları açabilir veya micromongo en github üzerinde çekme istekleri göndermek için bekliyoruz
micromongo sizin için işe yaramayabilir sadeleştirme adına bir kaç tasarım kararları yapar:
& Nbsp; - & nbsp; micromongo tek bir küresel bağlantıyı korur, böylece birden çok mongodb sunucularına bağlanmak modelleri olamaz
& Nbsp; - & nbsp; Model isimleri ve micromongo modelleri ile çalışmak olmaz belge niteliği isimleri bir avuç vardır; Bu tam dokümanlar ele alınacaktır
& Nbsp; - & nbsp; Sadece toplama başına bir modeli olabilir
başlarken
Micromongo ile başlamak için, sadece ithalat:
>>> Micromongo ithalat bağlamak gelen, Model
>>> C =) (bağlamak
connect pymongo en Bağlantı nesnesi aynı argüman alır ve otomatik olarak uygun model sınıflarında sarılmış sorgu sonuçları döndürmek için çalışır dışında, hemen hemen aynı davranır. Temiz, standart bağlantı nesnesi istiyorsanız, bu çağrı yoluyla oluşturmak bağlantı nesnesi önbelleğe ve çeşitli ORM-tarzı tesisleri tarafından kullanılacak, vb Model.save (), Model.proxy gibi, kolayca bir tane alabilirsiniz :
>>> Micromongo ithalat clean_connection gelen
>>> Temiz = clean_connection ()
Argümanları almaz clean_connection unutmayın ve her zaman geçerli micromongo bağlantısı ile aynı ayarlara sahip temiz bir bağlantı sınıfı dönecektir.
Bu bağlantı nesneleri ile, veritabanları oluşturabilirsiniz veya normal pymongo nesnelerle ne yapacağınız yapın:
>>> Db = c.test_db
>>> Toplama = db.test_collection
>>> Collection.save ({"docid": 1, "başarısız": Yanlış})
>>> Collection.find_one ()
{U'_id ': NesneKimliği (' ... '), u'fail': Yanlış, u'docid ': 1}
Ayrıca bildirime tarzı belirli bir koleksiyon için kendi Model bildirebilirsiniz:
>>> Sınıf TestModel (Model):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Koleksiyon = 'test_db.test_collection'
>>> Collection.find_one ()

Bu sınıflar, onları çok daha rahat kullanmak için yapabileceğiniz bir sözlük üzerinde ek özellikler bir dizi var. Belge tuşları nitelikler gibi tüm erişilebilir:
>>> T = collection.find_one ()
>>> T.fail
Yanlış
>>> T.docid
1
belgeler de kolayca veritabanına kalıcı edilir:
>>> T.docid = 17
>>> T.save ()
>>> Clean.test_db.test_collection.find_one ()
{U'_id ': NesneKimliği (' ... '), u'fail': Yanlış, u'docid ': 17}
tanımlayan modeller
Yukarıda, toplama niteliği bizim Foo modeli atandı. Bu olsa, bir kısayol vardı; Veritabanı ve tahsilat ayrı atanmışsa, model, tam koleksiyon adı anlayabilirsiniz. Toplama ve veritabanı mevcut değilse, micromongo senin Model sınıfı ve modül adı dayalı anlamaya çalışır. Örneğin, blog.Post blog.post olur, ya da stream.StreamEntry stream.stream_entry olacaktır. Açık örtülü daha iyidir, ve el koleksiyonu ayarlamanız teşvik ediyor.
Ambalaj ve veritabanı sonuçlarını açma yanında, modeller de varsayılan tanımlamak ve modelini kaydetmeden önce doğrulama gerçekleştirebilirsiniz bir spec belge tanımlayabilirsiniz. Önemsiz bir blog yazısı modeli atın:
>>> Micromongo.spec import *
>>> Sınıf Mesaj (Model):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Koleksiyon = 'test_db.blog_posts'
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; spec = dict (
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Yazar Alan, (= true, varsayılan = 'jmoiron', type = basestring gerekli) =
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; title = Alan (gerekli = false varsayılan = '', type = basestring),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; yayınlanan = Alan (= gerekli Doğru, varsayılan = False, type = [Doğru, Yanlış]),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Vücut = Alan (type = unicode),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; zaman damgası = Alan (),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; )
>>> P = Post.new ()
>>> S

Bir kaç şey burada devam etmektedir. Varsayılan sahip alanlar, gerekli olsun veya olmasın bu varsayılan başlatılır. Gerekli bir alan varsayılan yoksa, bu Yoktur başlatıldı oluyor.
Alanlar, ya bir ya da daha fazla baz türleri, ya da bir veya daha fazla değerler değer alır ve Doğru veya Yanlış döndüren bir çağrılabilir olabilir bir tür bağımsız değişkeni, alabilir. Bir ya da daha fazla tipte sağlanırsa, isinstance değerleri sağ tipi test etmek için kullanılır. Bir veya daha fazla değer verilmiş ise, alan değerler, kendi grubu içinde olup olmadığının sürekli kontrol, bir enum Çeşidi olarak işlev görür. Hiçbir tipi verilirse gerekli ve eksik olduğu takdirde, doğrulama, her zaman bir alana geçer.
P alan geçersiz türü verilir, daha sonra bir ValueError ortaya çıkar:
>>> P.title = 10
>>> P. SAVE ()
Traceback (en son çağrı son):
& Nbsp; ...
ValueError: Tuşlar spec eşleşmedi: ['başlığı']
>>> Del p.author
>>> P. SAVE ()
Traceback (en son çağrı son):
& Nbsp; ...
ValueError: Eksik alanlar: ['yazar'], Geçersiz alanları: ['title']
>>> P.title = 'Benim ilk blogpost'
>>> P.author = 'jmoiron'
>>> P.published = true
>>> P.body = u "Bu benim ilk blog yazısı .. & nbsp; ben çok heyecanlıyım!"
>>> P. SAVE ()
Model.find
Kolaylık ve DRY için, Model.find sağ koleksiyon karşı bulmak sorunu micromongo imlecini kullanacak bir classmethod olduğunu. Bu yöntem tam olarak pymongo en Collection.find aynı şekilde davranır.
micromongo en biraz değiştirilmiş İmleç sınıfı da tüm imleçleri (bulmak ve bir imleç döndürür eğer bir şey kapalı zincir) kullanılabilir Django-ilham order_by yöntemini yapar. İsteğe bağlı öncülüğünde, bir veya daha fazla alan adlarını geçebilir '-', artan veya azalan sıraya göre şeyleri sıralamak için.
Bu değişiklikler ithal etmek zorunda kalmadan pymongo gücünün en kullanmasına izin ve verilerinizin yerin gereksiz tekrarını önlemek sağlar.
alan sınıflara
Sen ne istiyorsun kendi alanları oluşturmak için teşvik edilir. Saha alt sınıfları gelen değer alır ve istedikleri ancak bunu dönüştürmek bir kanca işlevi pre_validate var. Alanlar aslında varsa bu sadece çalışacağını unutmayın; böylece DateTimeField bir auto_now_add gibi bir şey almak için, bunu gerekli yapmak istiyorum ve bunun pre_validate datetime.datetime.now () içine Yoktur çevirmek olacak

Gereksinimler :.

  • Python

Benzer yazılım

hiberlite
hiberlite

11 May 15

Data Architect
Data Architect

20 Feb 15

Geliştirici Diğer yazılım Jason Moiron

speedparser
speedparser

14 Apr 15

pdf2zip
pdf2zip

11 May 15

redtape
redtape

14 Apr 15

Yorumlar micromongo

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!