MiniSLite
MiniSLite is a secure and mini SQLite ORM module.
Install
From Pypi
The script is available on PyPI. To install with pip:
pip install minislite
From Source Code
git clone https://github.com/ahmetkotan/minislite
cd minislite
python setup.py build
python setup.py install
Usage
Create Model
from minislite import MiniSLiteModel
from minislite import DatabaseField
class Person(MiniSLiteModel):
name = DatabaseField(field_type=str, unique=False, not_null=True, auto_increment=False)
last_name = DatabaseField(field_type=str, default="mini")
age = DatabaseField(field_type=int, not_null=False)
table_name = "person"
unique_together = ["name", "last_name"]
Create Database and Add Model
from minislite import MiniSLiteDb
database = MiniSLiteDb("minis.db")
database.add_model(Person)
Create and Update Object
person1 = Person(name="mini", last_name="slite")
person1.age = 1
person1.save()
person2 = Person.objects.create(name="mini2", last_name="slite")
person2.age = 2
person2.save()
person3 = Person.objects.create(name="mini3", last_name="slite", age=10)
person4 = Person.objects.create(name="mini4", last_name="slite", age=20)
Update All Objects
Person.objects.update(last_name="slite-updated")
Filter/Get and Delete Object
first_person = Person.objects.first()
last_person = Person.objects.last()
person_objects = Person.objects.filter(last_name="slite-updated")
for person in person_objects:
print(person.name)
person_obj = Person.objects.get(name="mini")
person_obj.delete()
Special Filters
gt
, gte
, lt
, lte
for integer, bool and float fieldscontains
, startswith
, endswith
for string fields
older_than_10 = Person.objects.filter(age__gt=10)[0]
print(older_than_10.name)
Delete All Objects
Person.objects.delete(i_am_sure=True)
Clean All Tables or Drop Model
database.clean_tables()
database.drop_model(Person)
Exceptions
from minislite.exceptions import RecordNotFoundError, AlreadyExistsError, DatabaseNotFoundError, \
AreYouSureError, WhereOperatorError
- RecordNotFoundError: If you use
objects.get()
and that is not found in database - AlreadyExistsError: Raise this exception when an object creating or saving. Check your
unique=True
fields and unique_together
fields. - DatabaseNotFoundError: Cannot use TableManager if you don't initialize
MiniSLiteDb()
- AreYouSureError: Raise this exception if you want to delete all objects(
objects.delete()
) in model. Add i_am_sure=True
arguments. - WhereOperatorError: Raise this exception if you use integer operator for string field. Or vice versa.
Development and Contribution
See; CONTRIBUTING.md