Skip to content

encode/orm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

062f7e0 Β· Aug 30, 2022
Aug 30, 2022
Jul 17, 2022
Jan 7, 2022
Sep 8, 2021
Jan 7, 2022
Aug 27, 2019
Feb 12, 2019
Feb 12, 2019
Nov 25, 2021
Sep 3, 2021
Nov 25, 2021
Sep 17, 2021
Aug 30, 2022

ORM

Build Status Coverage Package version

The orm package is an async ORM for Python, with support for Postgres, MySQL, and SQLite. ORM is built with:

Because ORM is built on SQLAlchemy core, you can use Alembic to provide database migrations.


Documentation: https://www.encode.io/orm


Installation

$ pip install orm

You can install the required database drivers with:

$ pip install orm[postgresql]
$ pip install orm[mysql]
$ pip install orm[sqlite]

Driver support is provided using one of asyncpg, aiomysql, or aiosqlite.


Quickstart

Note: Use ipython to try this from the console, since it supports await.

import databases
import orm

database = databases.Database("sqlite:///db.sqlite")
models = orm.ModelRegistry(database=database)


class Note(orm.Model):
    tablename = "notes"
    registry = models
    fields = {
        "id": orm.Integer(primary_key=True),
        "text": orm.String(max_length=100),
        "completed": orm.Boolean(default=False),
    }

# Create the tables
await models.create_all()

await Note.objects.create(text="Buy the groceries.", completed=False)

note = await Note.objects.get(id=1)
print(note)
# Note(id=1)

β€” πŸ—ƒ β€”

ORM is BSD licensed code. Designed & built in Brighton, England.