The same RESTful API (an inventory app), implemented using different ORM/ODMs--a sort of "Hello World" tour of Python data mapper libraries.
Each example demonstrates the syntax for declaring models as well as basic querying, inserting, updating, and deleting of records.
Featuring. . .
SQLAlchemy (Relational DBs)
hour_ago = datetime.utcnow() - timedelta(hours=1) recent_items = Item.query.filter(Item.checked_out & (Item.updated > hour_ago)) \ .order_by(Item.updated.desc()).all()
Peewee (Relational DBs)
hour_ago = datetime.utcnow() - timedelta(hours=1) recent_items =Item.select().where(Item.checked_out & (Item.updated > hour_ago)) \ .order_by(Item.updated.desc())
Mongoengine (MongoDB)
hour_ago = datetime.utcnow() - timedelta(hours=1) recent_items = Item.objects(checked_out=True, updated__gt=hour_ago)\ .order_by("-updated")
Stdnet (Redis)
hour_ago = datetime.utcnow() - timedelta(hours=1) recent_items = models.item.filter(checked_out=True, updated__gt=hour_ago)\ .sort_by("-updated").all()
Pony (Relational DBs)
hour_ago = datetime.utcnow() - timedelta(hours=1) recent_items = orm.select(item for item in Item if item.checked_out and item.updated > hour_ago)\ .order_by(Item.updated.desc())[:]
. . . and more to come.
Each of these was put to REST by Flask, Flask-Classy, and marshmallow.
Running an example
First, install dependencies.
$ pip install -r requirements.txt
Then run the example of your choice.
$ python sleepy/api_sqlalchemy.py
Browser interface
An interactive browser interface is included to test out the REST API.
To use the browser interface, run an example and browse to http://localhost:5000.
"Why isn't _____ included here?"
To which I respond: Why don't you fork this project?