flask-rest-crud
Python package that generate REST API CRUD from mongoengine models.
The generated API can be used with react-admin since it has the Simple REST Data Provider dialect.
Install
pip install flask-rest-crud
Usage
from flask_rest_crud import Crud, init_crud_error_handler
from flask_mongoengine import MongoEngine
db = MongoEngine()
class Category(db.Document):
name = db.StringField(required=True)
description = db.StringField()
Crud(app, Category, 'categories')
errors = Blueprint('errors', __name__)
init_crud_error_handler(errors, app)
Example
from flask import Flask
from project.crud import Crud
from project.models.category import Category
from flask_mongoengine import MongoEngine
from flask_rest_crud import Crud, init_crud_error_handler
db = MongoEngine()
# models
class Category(db.Document):
name = db.StringField(required=True)
description = db.StringField()
class Product(db.Document):
name = db.StringField(required=True)
description = db.StringField()
category = db.ReferenceField(Category)
# Create application
app = Flask(__name__)
# CRUDS
Crud(app, Category, 'categories', '/api/')
Crud(app, Product, 'products', '/api/')
# Error handler
errors = Blueprint('errors', __name__)
init_crud_error_handler(errors, app)
# mongodb config
app.config['SECRET_KEY'] = '123456790'
app.config['MONGODB_SETTINGS'] = { 'host': 'hosturi' }
# Create models
db.init_app(app)
app = create_app()
app.run()
This code will generate the following API endpoints:
| Method | API calls |
|---|---|
getList |
GET http://my.api.url/api/products?sort=["name","ASC"]&range=[0, 24]&filter={"name":"bar"} |
getOne |
GET http://my.api.url/api/products/123 |
getMany |
GET http://my.api.url/api/products?filter={"id":[123,456,789]} |
getManyReference |
GET http://my.api.url/api/products?filter={"category_id":345} |
create |
POST http://my.api.url/api/products |
update |
PUT http://my.api.url/api/products/123 |
delete |
DELETE http://my.api.url/api/products/123 |
Release files for flask-rest-crud 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flask-rest-crud-0.3.0.tar.gz | 3.9 kB | Details |
Release files / flask-rest-crud-0.3.0.tar.gz
| Download URL | flask-rest-crud-0.3.0.tar.gz |
|---|---|
| Size | 3.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5179965f7a124125d9812c2899e33c21186d2d9bd794fa6043f11edb5f7107d8
|
|
BLAKE2b-256 checksum How to use checksums |
5141f35aaa5e03a97f27e4178f9cb04680ae122cfd3ee0f7f7baa5d7069e8fd9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.5
|