Skip to main content

DuckORM is package is an asynchronous ORM for Python

Project description

Duck ORM

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.

Installation

$ pip install duck-orm

Quickstart

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.

Creating the connection to the SQLite database:

from databases import Database
from duck_orm.Model import Model

db = Database('sqlite:///example.db')
await db.connect()

Defining a model:

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)

# creation of the table in the database.
await Person.create()
  • The __tablename__ attribute is used to define the name of the table 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 creation of the table in the database.

License

DuckORM is built as an open-source tool and remains completely free(MIT license).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

duck-orm-0.1.0.tar.gz (10.7 kB view hashes)

Uploaded Source

Built Distribution

duck_orm-0.1.0-py3-none-any.whl (12.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page