A very simple CRUD class for SQLModel! :sparkles:
Project description
basesqlmodel
A very simple CRUD class for SQLModel! :sparkles:
Installation
pip install basesqlmodel
Usage
import asyncio
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
from sqlalchemy.orm import sessionmaker
from sqlmodel import Field
from basesqlmodel import Base
engine = create_async_engine("sqlite+aiosqlite:///:memory:")
SessionLocal = sessionmaker(engine, expire_on_commit=False, class_=AsyncSession)
class Potato(Base, table=True):
id: int = Field(primary_key=True)
name: str
async def main():
# Create tables
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
# Interact with the Potato table
async with SessionLocal() as session:
obj = await Potato.create(session, name="Potato")
print(f"Potato created: {repr(obj)}")
obj = await Potato.get(session, name="Potato")
print(f"Potato retrieved: {repr(obj)}")
await obj.update(session, name="Fake Potato")
print(f"Potato updated: {repr(obj)}")
await Potato.delete(session, name="Fake Potato")
print(f"Potato deleted: {repr(obj)}")
objs = await Potato.get_multi(session)
print(f"Confirm that the database is empty: {objs}")
asyncio.run(main())
License
This project is licensed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
basesqlmodel-0.1.0.tar.gz
(4.1 kB
view hashes)
Built Distribution
Close
Hashes for basesqlmodel-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c85b9a66d769b1e8e4fe96eed93f0d81e985643cdcf955eaf25aee5fa5380ee3 |
|
MD5 | 08ac4900a109dc3f1ad40008b42b5729 |
|
BLAKE2b-256 | 9cf99c46c7f60f77ee5f8ecb14f8d60e75fef9fd16272248db33dee637149869 |