Skip to content

Basic CRUD

Use Ormdantic to register Pydantic models, create tables, and run Rust-backed CRUD operations.

"""Basic Ormdantic CRUD example."""

import asyncio

from pydantic import BaseModel

from ormdantic import Ormdantic

db = Ormdantic("sqlite:///examples_basic_crud.sqlite3")


@db.table(pk="id", indexed=["name"])
class Flavor(BaseModel):
    id: str
    name: str
    strength: int


async def main() -> None:
    await db.init()
    await db.drop_all()
    await db.create_all()

    mocha = Flavor(id="1", name="mocha", strength=5)
    await db[Flavor].insert(mocha)

    found = await db[Flavor].find_one("1")
    assert found == mocha

    mocha.strength = 6
    await db[Flavor].update(mocha)

    assert await db[Flavor].count() == 1
    await db[Flavor].delete("1")


if __name__ == "__main__":
    asyncio.run(main())

Run it locally:

python examples/basic_crud.py