Skip to main content

A fast unobtrusive MongoDB ODM for Python

Project description

<a href="http://mongoframes.com"><img width="188" src="http://mongoframes.com/images/github-splash.png" alt="MongoFrames logo"></a>

# MongoFrames

[![Build Status](https://travis-ci.org/GetmeUK/MongoFrames.svg?branch=master)](https://travis-ci.org/GetmeUK/MongoFrames)
[![Join the chat at https://gitter.im/GetmeUK/ContentTools](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/GetmeUK/MongoFrames?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

MongoFrames is a fast unobtrusive MongoDB ODM for Python designed to fit into a workflow not dictate one. Documentation is available at [MongoFrames.com](http://mongoframes.com) and includes:

- [A getting started guide](http://mongoframes.com/getting-started)
- [Tutorials/Snippets](http://mongoframes.com/snippets)
- [API documentation](http://mongoframes.com/api)

## Installation

We recommend you use [virtualenv](https://virtualenv.pypa.io) or [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io) to create a virtual environment for your install. There are several options for installing MongoFrames:

- `pip install MongoFrames` *(recommended)*
- `easy_install MongoFrames`
- Download the source and run `python setup.py install`

## Dependencies

- [blinker](https://pythonhosted.org/blinker/) >= 1.4
- [pymongo](https://api.mongodb.com) >= 3
- [pytest](http://pytest.org/) >= 2.8.7 *(only for testing)*

## 10 second example

```Python
from mongoframes import *

# Define some document frames (a.k.a models)
class Dragon(Frame):
_fields = {'name', 'loot'}

class Item(Frame):
_fields = {'desc', 'value'}

# Create a dragon and loot to boot
Item(desc='Sock', value=1).insert()
Item(desc='Diamond', value=100).insert()
Dragon(name='Burt', loot=Item.many()).insert()

# Have Burt boast about his loot
burt = Dragon.one(Q.name == 'Burt', projection={'loot': {'$ref': Item}})
for item in burt.loot:
print('I have a {0.name} worth {0.value} crown'.format(item))
```

## Testing

To test the library you'll need to be running a local instance of MongoDB on the standard port.

To run the test suite: `py.test`
To run the test suite on each supported version of Python: `tox`

## Helpful organizations
MongoFrames is developed using a number of tools & services provided for free by nice folks at organizations committed to supporting open-source projects including [GitHub](https://github.com) and [Travis CI](https://travis-ci.org).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

MongoFrames-1.2.8.tar.gz (30.7 kB view details)

Uploaded Source

File details

Details for the file MongoFrames-1.2.8.tar.gz.

File metadata

  • Download URL: MongoFrames-1.2.8.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for MongoFrames-1.2.8.tar.gz
Algorithm Hash digest
SHA256 fd42282e40860ff35f9e8d458aaee0cd1c4cfa3d58e5573dfb6d82e27360eccd
MD5 ffb91676a357f7c3cb376d9a711c655f
BLAKE2b-256 f9019ee3b624666aa52e3e0ef6f511b3b170fddaafc79802d61ad654b1cfb284

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page