Socket
Socket
Sign inDemoInstall

sqlite-middleware

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sqlite-middleware

This is a python package that makes it easier to work with sqlite


Maintainers
1

Sqlite middleware

This package removes all the annoying boilerplate code you have to write when using sqlite3. Instead, use the methods this package provides, and easily manage your sqlite database in your python project.

  • Installation
  • Db class
  • How does it work

Installation

For more information, check out the PyPi page

To install the newest version, use:

pip install sqlite-middleware

Db class:

All the functionality of this package is in the Db class. When creating a new instance of this class, you should specify following parameters:

  • database: (str) name of the sqlite file

Example usage:

db = Db("demo.db")

When an instance of Db is deleted, the __del__ magic method will close the connection.

Methods

Here are all the methods that the Db class provides:

Select all

This method will retrieve and return all objects of a certain class from the sqlite database.

Parameters:

  • cls: (Class) class of the objects you want to retrieve

Example usage:

db.select_all(Person)

Select by id

This method will retrieve and return an object with certain id and class from the database.

Parameters:

  • cls: (Class) class of the object you want to retrieve
  • id: (int) id of the object you want to retrieve

Example usage:

db.select_by_id(Person, 2)

Select by custom attribute

This method will retrieve and return an object with certain value for a certain attribute

Parameters:

  • cls: (Class) class of the object you want to retrieve
  • custom_attribute: (str) string of the column of the attribute you want to search for
  • value: (any) value of this attribute you are searching for

Example usage:

db.select_by_custom_attribute(Person, "name", "John Doe")

Create table

This method will create a table in the database for objects of a certain class.

Parameters:

  • object: (Instance) instance of the class you want to create a new table for.

Example usage:

db.create_table(Person())

Save object

This method will save an object in the database.

It will also create a table if it doesn't exist yet.

Parameters:

  • object: (Instance) object you want to save in the database.

Example usage:

person = Person("John Doe")
db.save_object(person)

Update object

This method will update an existing object in the database.

Parameters:

  • id: (int) id of the object you want to update.
  • object: (Instance) object containing new values you want to save in the database.

Example usage:

person = Person("John Doe")
db.save_object(person) # Say this is the first person, and gets id 1

person.set_name("Michael Myers")
db.update_object(1, person)

Delete object

This method will delete an object from the database.

Parameters:

  • cls: (Class) class of the object you want to delete.
  • id: (int) id of the object you want to delete

Example usage:

person = Person("John Doe")
db.save_object(person) # Say this is the first person, and gets id 1

db.delete_object(Person, 1)

How does it work

Table names

By default table names are created with the name of the class you specified. tbl[Classname]s

The reason that we must pass an object, and not a class, to db.create_table(), is because it takes all the instance variables of this object and uses them to create a column in the sqlite table.

For example with a class named Person, which has a name parameter:

db.create_table(Person())

The line above would create a table, with name tblPersons and it would have 2 columns name, and also an auto-generated column for id.

As we need id's to specify what object to delte, the id needs to be stored in the database, this is done automatically when creating a table / saving an object.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc