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.
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.
First, install dependencies.
$ pip install -r requirements.txt
Then run the example of your choice.
$ python sleepy/api_sqlalchemy.py
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
.
To which I respond: Why don't you fork this project?