Skip to main content

A tool for easily manage databases with Python

Project description

ReallySimpleDB 🧩

Icon

tests Codacy Badge PyPI version made-with-python Downloads

What is This


This is a Python application that can be used to manage sqlite databases without using any sql command.

🚀 Installation

You can use pip:

~$ pip3 install ReallySimpleDB

or

~$ python setup.py install

📗 Usage

>> from ReallySimpleDB import dbmanager

>> _dbmanager = dbmanager()

Create database

>> _dbmanager.create_db(dbpath="test.db", replace=True)

Close connection

>> _dbmanager.close_connection()

Create table

Here you can not directly call the create_table function. Because sqlite cannot create table without columns. So you must first define the columns and create a table.

Important: You have to close connection here. If not, code returns error. Because it tries to add column to existing table.

>> _dbmanager.close_connection()
>> _dbmanager.add_columns(column_name="student_id", primary_key=True)
>> _dbmanager.add_columns(column_name="name", not_null=True)
>> _dbmanager.add_columns(column_name="mark", datatype="INT")

>> _dbmanager.create_table(database="test.db", table_name="STUDENTS")

If you want to add columns to an existing table, read the Add column to table section.

Get all tables

>> all_tables = _dbmanager.all_tables()

["STUDENT", "EXAM"]

Check table if exists

>> _dbmanager.is_table(database="test.db", table_name="STUDENTS")

True

Delete table from database

>> _dbmanager.delete_table(table="STUDENTS")

Add column to table

>> _dbmanager.add_columns(column_name="year", database="test.db", table="STUDENTS")

Get all columns

>> _dbmanager.get_columns(table="STUDENTS")

["student_id", "name", "mark"]

Get all columns with types

>> all_columns = _dbmanager.get_all_column_types(table="STUDENTS")

{"student_id": "TEXT", "name": "TEXT", "mark": "INT"}

Get columns type

>> _dbmanager.get_column_type(table="STUDENTS", column="student_id")

"TEXT"

Get primary key of a table

>> _dbmanager.get_primary_key(table="STUDENTS")

"student_id"

Add record to table

>> _dbmanager.add_record(table="STUDENTS", record={"student_id": "1010", "name":"ABC", "mark":10, "year":"2022"})

Get all records from a table

>> _dbmanager.get_all_records(table="STUDENTS", primary_key="1010")

[{'student_id': '1010', 'name': 'ABC', 'mark': 10, 'year': '2022'}, {'student_id': '1011', 'name': 'DEF', 'mark': 100, 'year': '2022'}]

Get record from a table

>> _dbmanager.get_record(table="STUDENTS", primary_key="1010")

{'student_id': '1010', 'name': 'ABC', 'mark': 10, 'year': '2022'}

Delete record from a table

>> _dbmanager.delete_record(table="STUDENTS", primary_key="1010")

Filter record/s from a table

If you want to filter equal values, add value without any operator.

Examples:

  • {"year":2022} ✔️
  • {"year":" == 2022"}

🖇 Comparison operators

Comparison Operator Description
!= Not Equal
> Greater Than
>= Greater Than or Equal
< Less Than
<= Less Than or Equal

Examples:

  • {"marks":"<= 10"} ✔️
  • {"marks":"== 10"}
  • {"name":"< ABC"} ❌ 'Greater Than' and 'Less than' comparisons are not supported with Strings

Important: If you are trying to compare strings, please use string between Inch Marks.

  • {"grade":"!= 'A'"} ✔️
  • {"grade":"!= A"}
>> _dbmanager.filter_records(table="STUDENTS", values={"year":"2022"})

[{'student_id': '1010', 'name': 'ABC', 'mark': 10, 'year': '2022'}, {'student_id': '1011', 'name': 'DEF', 'mark': 100, 'year': '2022'}]

🌱 Contributing Guide

  • Fork the project from the alpha branch and submit a Pull Request (PR)

    • Explain what the PR fixes or improves.

    • If your PR aims to add a new feature, provide test functions as well.

  • Use sensible commit messages

    • If your PR fixes a separate issue number, include it in the commit message.
  • Use a sensible number of commit messages as well

    • e.g. Your PR should not have 1000s of commits.

Run pytest without installing package

If you are adding new functions as described above, please add test functions to tests/test_manager.py.

~$ python -m pytest -s tests

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

ReallySimpleDB-1.2.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

ReallySimpleDB-1.2-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file ReallySimpleDB-1.2.tar.gz.

File metadata

  • Download URL: ReallySimpleDB-1.2.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for ReallySimpleDB-1.2.tar.gz
Algorithm Hash digest
SHA256 8d70da45af7618511aee03989833e7327bbec984c7567f6633e2d74111d5b5a1
MD5 5b5383b9d85ec5557a4903020c810376
BLAKE2b-256 ad6efb568a347ecb2f16537eef758ab0618f290a168d98f9c9eb735cf12c501e

See more details on using hashes here.

File details

Details for the file ReallySimpleDB-1.2-py3-none-any.whl.

File metadata

  • Download URL: ReallySimpleDB-1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for ReallySimpleDB-1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7cb9b832575ac127f42474fd8d27391bdbd580a0ea209e86240bc65392f0caab
MD5 e8730059e3ed64213c34656484bbf1e7
BLAKE2b-256 331e2a39e49c4bab2fab6784601607f369df5de094ac7ab800c5642ed59f4b20

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page