Flask-RESTive extension to work with MongoDB.
Project description
# flask-restive-mongodb
Flask-RESTive extension to work with mongodb.
[](https://travis-ci.org/left-join/flask-restive-mongodb)
[](https://coveralls.io/github/left-join/flask-restive-mongodb?branch=master)
[](https://landscape.io/github/left-join/flask-restive-mongodb/master)
[](https://pypi.python.org/pypi/Flask-RESTive-MongoDB)
## Installation
```bash
pip install flask-restive-mongodb
```
## How to use
```python
from datetime import datetime
import mongoengine as me
from flask import Flask
from flask_restive import Api, StorageResource, UUIDSchema, fields
from marshmallow import pre_load
from flask_restive_mongodb import Model, Storage
app = Flask(__name__)
app.config['MONGODB_DATABASE_URI'] = 'mongodb://localhost/local'
def utc_time():
return datetime.utcnow().replace(microsecond=0)
class ClientSchema(UUIDSchema):
first_name = fields.String(required=True)
last_name = fields.String(required=True)
created_on = fields.DateTime(
required=True,
missing=lambda: utc_time().isoformat())
updated_on = fields.DateTime()
class Meta(UUIDSchema.Meta):
sortable_fields = ('id', 'created_on', 'updated_on')
default_sorting = ('-updated_on', '-created_on', 'id')
@pre_load(pass_many=False)
def set_updated_on(self, data):
# update time stamp on each create/update operation
data['updated_on'] = utc_time().isoformat()
return data
class ClientModel(Model):
id = me.fields.UUIDField(primary_key=True)
first_name = me.fields.StringField()
last_name = me.fields.StringField()
created_on = me.fields.DateTimeField()
updated_on = me.fields.DateTimeField()
class ClientStorage(Storage):
class Meta(Storage.Meta):
model_cls = ClientModel
primary_key_fields = ('id',)
class ClientResource(StorageResource):
data_schema_cls = ClientSchema
storage_cls = ClientStorage
api = Api(app, prefix='/api/v1', api_resources=[
(ClientResource, ('/clients', '/clients/<uuid:id>')),
])
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
```
Flask-RESTive extension to work with mongodb.
[](https://travis-ci.org/left-join/flask-restive-mongodb)
[](https://coveralls.io/github/left-join/flask-restive-mongodb?branch=master)
[](https://landscape.io/github/left-join/flask-restive-mongodb/master)
[](https://pypi.python.org/pypi/Flask-RESTive-MongoDB)
## Installation
```bash
pip install flask-restive-mongodb
```
## How to use
```python
from datetime import datetime
import mongoengine as me
from flask import Flask
from flask_restive import Api, StorageResource, UUIDSchema, fields
from marshmallow import pre_load
from flask_restive_mongodb import Model, Storage
app = Flask(__name__)
app.config['MONGODB_DATABASE_URI'] = 'mongodb://localhost/local'
def utc_time():
return datetime.utcnow().replace(microsecond=0)
class ClientSchema(UUIDSchema):
first_name = fields.String(required=True)
last_name = fields.String(required=True)
created_on = fields.DateTime(
required=True,
missing=lambda: utc_time().isoformat())
updated_on = fields.DateTime()
class Meta(UUIDSchema.Meta):
sortable_fields = ('id', 'created_on', 'updated_on')
default_sorting = ('-updated_on', '-created_on', 'id')
@pre_load(pass_many=False)
def set_updated_on(self, data):
# update time stamp on each create/update operation
data['updated_on'] = utc_time().isoformat()
return data
class ClientModel(Model):
id = me.fields.UUIDField(primary_key=True)
first_name = me.fields.StringField()
last_name = me.fields.StringField()
created_on = me.fields.DateTimeField()
updated_on = me.fields.DateTimeField()
class ClientStorage(Storage):
class Meta(Storage.Meta):
model_cls = ClientModel
primary_key_fields = ('id',)
class ClientResource(StorageResource):
data_schema_cls = ClientSchema
storage_cls = ClientStorage
api = Api(app, prefix='/api/v1', api_resources=[
(ClientResource, ('/clients', '/clients/<uuid:id>')),
])
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
```
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
Built Distribution
File details
Details for the file Flask-RESTive-MongoDB-0.0.1.tar.gz
.
File metadata
- Download URL: Flask-RESTive-MongoDB-0.0.1.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
b46d443f3fd9c6a0f1879602a0699bf5524ad2f888b865764924140b18d68f2b
|
|
MD5 |
aa1506086a7f3c7cc6cb82d9d38fec0f
|
|
BLAKE2b-256 |
886523b07e4dd4cfca2fc268fa44293b4ef3512a9b0b20c618c61282def5314d
|
File details
Details for the file Flask_RESTive_MongoDB-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: Flask_RESTive_MongoDB-0.0.1-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
48008bdc7174d35bfb2509c5a1c8d1d34e4ec86a8549a29f832b62ea027a2d82
|
|
MD5 |
6cf73310a10dd3edb727c8340a70d22f
|
|
BLAKE2b-256 |
5da0e711e2dcde67c15f97aeb1aa18d3d10919b874c9a0176bf0cb6f4aad33f4
|