Yet another MongoDB ORM for Python. Signals included!
Project description
Yet another MongoDB ORM for Python. Signals included!
Still in development, feedback is highly appreciated.
Usage Examples
Installation:
pip install miongo
Models
Here’s a simple example of model usage:
#!/usr/bin/env python from miongo import models # this is always required # mingo do not implement mongodb connection, you should do that models.mongodb_database = pymongo.MongoClient().test_database class TestModel(models.Model): _collection = 'testmodel' uid = models.Field() name = models.Field() enabled = models.Field(default=True) # creating and saving model = TestModel() model.uid = 1 model.name = 'Antony' model.save() # finding in db model = TestModel() model.find({'uid': 1}) print model.uid # 1 print model.name # Antony print model.enabled # True
Signals
Can be used with your models too. Here’s an example of implementing before and after save signals:
#!/usr/bin/env python from miongo import signals, models # signals.SignalEmitterMixin is important here # it also can be used with other model classes class TestModel(models.Model, signals.SignalEmitterMixin): _collection = 'testmodel' BEFORE_SAVE = 0 AFTER_SAVE = 1 AVAILABLE_SIGNALS = [BEFORE_SAVE, AFTER_SAVE] name = models.Field() def save(self): self.emit_signal(self.BEFORE_SAVE) print 'Saving now!' super(TestModel, self).save() self.emit_signal(self.AFTER_SAVE) # let's define function that will be used by signal # you may use instance to modify object def signal_function(signal_type, instance): if signal_type == TestModel.BEFORE_SAVE: print 'Before save' elif signal_type == TestModel.AFTER_SAVE: print 'After save' model = TestModel() TestModel.connect_to_signal(TestModel.BEFORE_SAVE, signal_function) TestModel.connect_to_signal(TestModel.AFTER_SAVE, signal_function) model.save() # output is: # # Before save # Saving now! # After save
(Note signals can be connected to the instance too)
Credits
Author: Anton Kasyanov (antony.kasyanov@gmail.com)
Special thanks to: Ruslan Diduk, Igor Emelyanov
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
miongo-0.1.0.tar.gz
(4.9 kB
view hashes)