Extend SQLModel functionalities.
Project description
SQLModel Plus
Installation
Install package using pip -> pip install sqlmodel-plus
Usage
Use SQLModelPlus
class to define data models and tables as it inherits SQLModel
.
To use in-built functions, an engine needs to set using set_engine
method.
from sqlmodel_plus import SQLModelPlus, EngineException
from typing import Optional
from sqlmodel import Field, SQLModel, create_engine
class Hero(SQLModelPlus, table=True):
__tablename__ = "hero"
id: Optional[int] = Field(default=None, primary_key=True)
name: str
secret_name: str
age: Optional[int] = None
SQLModelPlus.set_engine(create_engine(f"sqlite:///database.db"))
If engine is not set it will raise EngineException
By using SQLModelPlus
class, it provide following classmethods available to all inherited classes -
find_by_id
Hero.find_by_id(1)
Hero.find_by_id("uuid")
Hero.find_by_id((1, 2,))
Hero.find_by_id({"id": 1, "version": 3})
save
Create or Update Record in database.
hero = Hero(id=1, name="hero_1", secret_name="Secret_hero").save()
hero.name = "hero_2"
hero.save()
create
Create new record in database.
Hero(id=1, name="hero_1", secret_name="Secret_hero").create()
update
Update record in database.
hero = Hero(id=1, name="hero_1", secret_name="Secret_hero")
hero.name = "hero_2"
hero.update()
delete
Delete record from database
hero = Hero(id=1, name="hero_1", secret_name="Secret_hero").save()
hero.delete()
select
statement = Hero.select # This is equivalant to select(Hero)
statement.where(Hero.id == 1)
query
statement = Hero.select.where(Hero.id == 1)
Hero.query(statement).all
Hero.query("SELECT id FROM hero").first
Session
session = Hero.Session # Return Session object
session.exec(Hero.select).all()
with Hero.Session as session:
session.exec(Hero.select.where(Hero.id == 1)).first()
create_tables
Create tables in database.
It is equivalant of SQLModel.metadata.create_all
method where you don't need to provide bind parameter.
SQLModelPlus.create_tables()
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
Built Distribution
Hashes for sqlmodel_plus-0.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa2dac4cea28c93bf1b2f4962d69944e4234a3e5f8ff257b9c2d89f558e95a25 |
|
MD5 | 92db9475b742b8a99ff0ecc78cdd3077 |
|
BLAKE2b-256 | 652eeda0d8190090ffeb18af86cf1e9cb35b374f749c0dc20f805b574cd89827 |