Python ORM/ODM Examples, For The Sleepy
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?