The Duck-ORM
package is an asynchronous ORM for Python, with support for Postgres and SQLite. ORM is built with:
Requirements: Python 3.8+
Duck-ORM is still under development.
$ pip install duck-orm
!!! note
Don't forget to install databases
before installing duck-orm
.
For this example we will create a connection to the SQLite database and create a model.
$ pip install databases[sqlite]
$ pip install ipython
Note that we want to use ipython
here, because it supports using await expressions directly from the console.
from databases import Database
from duck_orm.model import Model
db = Database('sqlite:///example.db')
await db.connect()
from duck_orm.sql import fields as Field
class Person(Model):
__tablename__ = 'persons'
__db__ = db
id: int = Field.Integer(primary_key=True, auto_increment=True)
first_name: str = Field.String(unique=True)
last_name: str = Field.String(not_null=True)
age: int = Field.BigInteger(min_value=18)
# Table creation in the database.
await Person.create()
- The
__tablename__
attribute is used to define the table's name in the database. - The
__db__
attribute is the instance of the database connection. - And then the definition of the fields, their types and restrictions.
- And finally, the table creation in the database.
- Rich Ramalho - @richecr - @richzinho_ecr
DuckORM
is built as an open-source tool and remains completely free(MIT license).