Library with operation like (get, create, update, delete) for SQLAlchemy ORM
Project description
SimpleCRUD
SimpleCRUD is a library that provides a simple way to create CRUD commands for SQLAlchemy models.
Installation
pip install hexfrost-simplecrud
poetry add hexfrost-simplecrud
Usage
- Create a model
- Create a CRUDConfig
- Set sessionmaker to CRUDConfig
- Import CRUD functions
- Use CRUD functions and enjoy
Example usage
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker
from sqlalchemy.orm import DeclarativeBase
from simplecrud import CRUDConfig, BaseModelWithCRUD, get_all, create_obj, update_obj
engine = create_async_engine("sqlite+aiosqlite:///test.db", echo=True)
async_sessionmaker = async_sessionmaker(async_engine, expire_on_commit=False, class_=AsyncSession)
# Create a model
class ExampleModel(DeclarativeBase):
__tablename__ = "example_model"
id = Column(Integer, primary_key=True)
name = Column(String(50), nullable=False)
description = Column(String(50), nullable=False)
# Create CRUD config
CRUDConfig.sessionmaker(async_sessionmaker)
async def example_func():
# Create a model
new_model = await create_object(model, name="test", description="test")
# Get all models
all_objs = await get_all(model)
# Update a model
updated_obj = await update_object(model, name="test2", description="test2")
# Delete a model
await delete_object(model, name="test2", description="test2")
Avaliable functions:
get_object
- get a single objectget_all
- get all objectsget_all_with_filter
- get all objects with filterget_objects
- get all objects with filter, limit and offsetget_or_create_object
- get or create an objectcreate_object
- create an objectbulk_create
- create multiple objectsupdate_object
- update an objectupdate_or_error
- update an object or raise an errorupdate_object_by_id
- update an object by idupdate_or_create_object
- update or create an objectdelete_object
- delete an objectdelete_object_by_id
- delete an object by idbulk_delete
- bulk delete objectsbulk_delete_by_id
- bulk delete objects by id
Contributing
This project is open for contributions. Feel free to open an issue or create a pull request.
License
GNU GENERAL PUBLIC LICENSE Version 3
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
hexfrost_simplecrud-0.2.0.tar.gz
(18.8 kB
view hashes)
Built Distribution
Close
Hashes for hexfrost_simplecrud-0.2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 931c76e833f1131a2b3c093ab8b0e78d42aa102eb6aecac30c59a969c29771e6 |
|
MD5 | 61a788cc6c1923e0f1edd4599cf06ade |
|
BLAKE2b-256 | e622e1491a1a5de644a4a8003729956098bd54d86e40591b414216ddfd027aab |
Close
Hashes for hexfrost_simplecrud-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b5d545e0bcb93f5aafeef0f6e5c47bf71d40689031be89dd6083ff1209c1a98 |
|
MD5 | ea2320271aeaea28b7fbfd6d7225dbfe |
|
BLAKE2b-256 | 8678a10797494e987d123fa25607e4d5624cd5fde8837d7f5b3f830ba22bea28 |