SQLite VEC ORM
SQLite VEC ORM is
- a lightweight ORM for SQLite with VEC support
- written in Python (3.7+) Standard Library
Quickstart
-
Define a
Pomodoromodelimport sqlite_orm class Pomodoro(sqlite_orm.Model): id = sqlite_orm.IntegerField(primary_key=True) # auto-increment task = sqlite_orm.StringField() interval = sqlite_orm.IntegerField()
-
Create a
Databaseinstancedb = sqlite_orm.Database('example.db')
-
Set it as backend of
Pomodoromodel objects, CRUD operations thus can be performed laterPomodoro.objects.backend = db
-
Create a Pomodoro timer record (primary key is auto-increment) and insert it to backend (auto-commited)
pomodoro = Pomodoro({'task': 'do something', 'interval': 25}) pomodoro.save()
which is equivalent to
pomodoro = Pomodoro({'task': 'do something', 'interval': 25}) Pomodoro.objects.add(pomodoro)
-
Retrieve all the records in the backend
Pomodoro.objects.all()
-
Retrieve single record by its primary key and update it (auto-commited)
obj = Pomodoro.objects.get(pk=1) obj['task'] = 'do something else' obj.update()
which is equivalent to
obj = Pomodoro.objects.get(pk=1) obj['task'] = 'do something else' Pomodoro.objects.update(obj)
-
Retrieve single record by its primary key and delete it (auto-commited)
Pomodoro.objects.get(pk=1).delete()
which is equivalent to
obj = Pomodoro.objects.get(pk=1) Pomodoro.objects.remove(obj)
-
Disconnect the backend
Pomodoro.objects.backend.close()
Install SQLite VEC ORM
$ pip install orm-sqlite
Documentation
Module Database
class sqlite_orm.Database(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri])
-
connectedInstance attribute: Whether or not the SQLite database is connected.
-
connectionInstance attribute:
sqlite3.Connectionobject -
cursorInstance attribute:
sqlite3.Cursorobject -
connect()Instance method: Connects the SQLite database if disconnected.
-
close()Instance method: Disconnects the SQLite database if connected.
-
select(sql, *args, size=None)Instance method: Returns query results, a list of
sqlite3.Rowobjects. -
execute(sql, *args, autocommit=True)Instance method: Executes an SQL statement and returns rows affected.
-
commit()Instance method: Commits the staged transaction.
Module StringField
class sqlite_orm.StringField(name=None, default='')
-
nameInstance attribute: Column name. Default:
None. -
typeInstance attribute: Column type. Default:
TEXT. -
defaultInstance attribute: Column default value. Default:
''. -
primary_keyInstance attribute: Whether or not it is the primary key. Default:
False.
Module IntegerField
class sqlite_orm.IntegerField(name=None, default=0, primary_key=False)
-
nameInstance attribute: Column name. Default:
None. -
typeInstance attribute: Column type. Default:
INTEGER. -
defaultInstance attribute: Column default value. Default:
0. -
primary_keyInstance attribute: Whether or not it is the primary key. Default:
False.
Module FloatField
class sqlite_orm.StringField(name=None, default=0.0)
-
nameInstance attribute: Column name. Default:
None. -
typeInstance attribute: Column type. Default:
REAL. -
defaultInstance attribute: Column default value. Default:
0.0. -
primary_keyInstance attribute: Whether or not it is the primary key. Default:
False.
Module Model
class sqlite_orm.Model(*args, **kwargs)
-
__table__Class attribute: Table.
-
__mappings__Class attribute: Object Relational Mappings (ORMs).
-
__primary_key__Class attribute: Primary key.
-
__fields__Class attribute: Fields except primary key.
-
objectsClass-only attribute:
sqlite_orm.Managerobject used to manage correspondingModelobjects. -
exists()Class-only method: Whether or not the table exists in the connected database.
-
create()Class-only method: Create the table if not exists in the connected database.
-
drop()Class-only method: Drop the table if exists in the connected database,
objects.backend.commit()needed to confirm. Extremely Dangerous. -
save()Instance method: Inserts
Modelobject to table in the connected database and returns rows affected (1 or -1). -
update()Instance method: Updates
Modelobject from table in the connected database and returns rows affected (1 or -1). Dangerous. -
delete()Instance method: Deletes
Modelobject from table in the connected database and returns rows affected (1 or -1). Dangerous. -
keys(),values(),items(),copy(), etc. methods inherited from standarddict.
Practical template for customized model:
import sqlite_orm
class MyModel(sqlite_orm.Model):
id = sqlite_orm.IntegerField(primary_key=True) # auto-increment
# TODO:
Module Manager
class sqlite_orm.Manager()
-
backendInstance attribute:
sqlite_orm.Databaseobject serving as backend ofModelobjects. -
all()Instance method: Returns all
Modelobjects from table in the connected database. -
find(filter=None, order_by=None, **extra)Instance method: Returns all
Modelobjects satified the conditions from table in the connected database. -
get(pk)Instance method: Returns single
Modelobject by its primary key from table in the connected database. -
exists(pk)Instance method: Whether or not a primary key exists in the table from the connected database.
-
aggregate(self, expression, filter=None)Instance method: Returns the result of an aggregate function performed on table in the connected database.
-
add(obj)Instance method: Inserts
Modelobject to table in the connected database and returns rows affected (1 or -1). -
update(obj)Instance method: Updates
Modelobject from table in the connected database and returns rows affected (1 or -1). Dangerous. -
remove(obj)Instance method: Deletes
Modelobject from table in the connected database and returns rows affected (1 or -1). Dangerous. -
clear()Instance method: Deletes all
Modelobjects from table in the connected database and returns rows affected (1 or -1),backend.commit()needed to confirm. Extremely Dangerous.
Helper Function
-
root_logger(log_dir='.')Returns root logger, a
logging.loggerobject, logging in main module. -
child_logger(child)Returns child logger, a
logging.loggerobject, logging in auxiliary module.
Related Projects
- Inspired by Django ORM
Release files for sqlite-orm-vec-qpython 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sqlite_orm_vec_qpython-0.1.5.tar.gz | 826.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sqlite_orm_vec_qpython-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.7 MB
Release files / sqlite_orm_vec_qpython-0.1.5.tar.gz
| Download URL | sqlite_orm_vec_qpython-0.1.5.tar.gz |
|---|---|
| Size | 826.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8dd64c16dc40c2260e1ec9deb8768420e30caa1b67fb4687d80809e8b9f88eef
|
|
BLAKE2b-256 checksum How to use checksums |
3a4830f92a299fdd9d776dc8d7edb7a26f323698c0e55f92a1de8696ce38482e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.7
|
Release files / sqlite_orm_vec_qpython-0.1.5-py3-none-any.whl
| Download URL | sqlite_orm_vec_qpython-0.1.5-py3-none-any.whl |
|---|---|
| Size | 825.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bd48c03d6d04ee21d58a55c892395274d0417412fe193f753bc830e93abb20b2
|
|
BLAKE2b-256 checksum How to use checksums |
f5b3187d43d462a900c5ff258ccf71b90d817093f9b97f973e55cf9273a8b14f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.7
|