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.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a52dd8427ab2340970f181153e6eab09b04309c8082be44e81c71894a7faa5a8 |
|
MD5 | f46311b8422e8424953545c2b9945707 |
|
BLAKE2b-256 | 10e3e80137c7b5f90928325adc6bc8291f3d147deabefd65d791db3156d876c0 |