Skip to main content

Library for easy work with databases. Easier aiosqlite version.

Project description

Static Badge Static Badge

AioEasySqlite
Easier aiosqlite version
Sorry, no documentation provided at the moment. • Chat

AioEasySqlite

License: MIT

Example usage (short)

import asyncio
from aioeasysqlite import db


async def main():
    database = db(path_to_database="test.db")

    # Creates a new table named "users"
    await database.new_table(name="users")

    # Adds a column "id" to the "users" table with type INTEGER and sets it as the primary key
    await database.add_column(table="users", name="id", type="INTEGER", primary_key=True)

    # Adds a column "name" to the "users" table with type TEXT
    await database.add_column(table="users", name="name", type="TEXT")

    # Adds a new row to the "users" table with data (id=12345678, name="Josh")
    await database.add_row(table="users", args=[("id", 12345678), ("name", "Josh")])
    
    # Gets the entire "users" table
    table_info = await get_table(users)

    print(table_info) # OUTPUT: [{"id": 12345678, "name": "Josh"}]

if __name__ == "__main__":
    asyncio.run(main())

IMPORTANT NOTE!

  • To retrieve old data from database use load_data method.

Example usage (full)

import asyncio
from aioeasysqlite import db


async def main():
    database = db(path_to_database="test.db")

    # Creates a new table named "users"
    await database.new_table(name="users")

    # Adds a column "id" to the "users" table with type INTEGER and sets it as the primary key
    await database.add_column(table="users", name="id", type="INTEGER", primary_key=True)

    # Adds a column "name" to the "users" table with type TEXT
    await database.add_column(table="users", name="name", type="TEXT")

    # Adds a column "age" to the "users" table with type INTEGER and sets the default value to 20
    await database.add_column(table="users", name="age", type="INTEGER", default=20)

    # Adds a column "email" to the "users" table with type TEXT, makes it unique and does not allow NULL values
    await database.add_column(table="users", name="email", type="TEXT", unique=True, not_null=True)

    # Adds a new row to the "users" table with data (id=1, name="John Doe", age=30, email="john.doe@example.com")
    await database.add_row(table="users", args=[("id", 1), ("name", "John Doe"), ("age", 30), ("email", "john.doe@example.com")])

    # Adds another row to the "users" table with data (id=2, name="Jane Smith", age=25, email="jane.smith@example.com")
    await database.add_row(table="users", args=[("id", 2), ("name", "Jane Smith"), ("age", 25), ("email", "jane.smith@example.com")])

    # Gets the entire "users" table
    users_table = await database.get_table(table="users")
    print("Users Table:", users_table) # OUTPUT: Users Table: [{'id': 1, 'name': 'John Doe', 'age': 30, 'email': 'john.doe@example.com'}, {'id': 2, 'name': 'Jane Smith', 'age': 25, 'email': 'jane.smith@example.com'}]

    # Gets the "name" column from the "users" table with indices
    name_column = await database.get_column(table="users", column="name", type="IND")
    print("Name Column:", name_column) # OUTPUT: Name Column: [(0, 'John Doe'), (1, 'Jane Smith')]

    # Renames the "users" table to "customers"
    await database.edit_table(table="users", new_name="customers")

    # Gets the entire "customers" table
    customers_table = await database.get_table(table="customers")
    print("Customers Table:", customers_table) # OUTPUT: Customers Table: [{'id': 1, 'name': 'John Doe', 'age': 30, 'email': 'john.doe@example.com'}, {'id': 2, 'name': 'Jane Smith', 'age': 25, 'email': 'jane.smith@example.com'}]

    # Edits a row in the "customers" table, changing the name "John Doe" to "Johnny Doe"
    await database.edit_row(table="customers", args=("name", "John Doe"), ("name", "Johnny Doe"))

    # Gets a row from the "customers" table where the name is "Johnny Doe"
    john_row = await database.get_row(table="customers", arg=("name", "Johnny Doe"))
    print("Johnny Doe Row:", john_row) # OUTPUT: Johnny Doe Row: {'id': 1, 'name': 'Johnny Doe', 'age': 30, 'email': 'john.doe@example.com'}

    # Gets a row from the "customers" table by index 1
    jane_row = await database.get_row(table="customers", index=1)
    print("Jane Smith Row:", jane_row) # OUTPUT: Jane Smith Row: {'id': 2, 'name': 'Jane Smith', 'age': 25, 'email': 'jane.smith@example.com'}

    # Adds a column "phone" to the "customers" table with type "TEXT"
    await database.add_column(table="customers", name="phone", type="TEXT")

    # Edits a row to add a phone number (unnecessary edit_row, as phone is null currently)
    await database.edit_row(table="customers", args=("name", "Johnny Doe"), ("name", "Johnny Doe"))


    # Adds a new row with a phone number
    await database.add_row(table="customers", args=[("id", 3), ("name", "Mike Jhonson"), ("age", 40), ("email", "mike.jhonson@example.com"), ("phone", "555-123-4567")])

    # Deletes a row from the "customers" table where the name is "Jane Smith"
    await database.delete_row(table="customers", arg=("name", "Jane Smith"))

    # Gets the entire "customers" table after deleting a row
    customers_table_after_delete = await database.get_table(table="customers")
    print("Customers Table After Delete:", customers_table_after_delete) # OUTPUT: Customers Table After Delete: [{'id': 1, 'name': 'Johnny Doe', 'age': 30, 'email': 'john.doe@example.com', 'phone': None}, {'id': 3, 'name': 'Mike Jhonson', 'age': 40, 'email': 'mike.jhonson@example.com', 'phone': '555-123-4567'}]

    # Deletes the "age" column from the "customers" table
    await database.delete_column(table="customers", column="age")

    # Gets the entire "customers" table after deleting a column
    customers_table_after_delete_column = await database.get_table(table="customers")
    print("Customers Table After Delete Column:", customers_table_after_delete_column) # OUTPUT: Customers Table After Delete Column: [{'id': 1, 'name': 'Johnny Doe', 'email': 'john.doe@example.com', 'phone': None}, {'id': 3, 'name': 'Mike Jhonson', 'email': 'mike.jhonson@example.com', 'phone': '555-123-4567'}]

    # Deletes the "customers" table
    await database.delete_table(table="customers")

    # Tries to get the "customers" table after deletion (should return an error)
    try:
        await database.get_table(table="customers")
    except Exception as e:
        print("Error getting table after deletion:", e) # OUTPUT: Error getting table after deletion: Table 'customers' does not exist

    # Clears the database (deletes and recreates the file)
    await database.clear_database()

if __name__ == "__main__":
    asyncio.run(main())

Donate

If you enjoy using my library, you can support me by donating.

  • UQB-7m2USzQ451d9orgD4iECLD0FL_BV-zzk3i--bdRl51ho - TON
  • TUbvCEDE5wpVRsbLmuU8JfkWY4gNcBNbrx - USDT TRC20

Key Features

  • Easy: Makes working with aiosqlite much easier. No need to know SQL query language anymore.
  • Type-hinted: Types and methods are all type-hinted, enabling excellent editor support.
  • Async: Fully asynchronous.

Installing

pip3 install aioeasysqlite

Resources

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

aioeasysqlite-1.0.3.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aioeasysqlite-1.0.3-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file aioeasysqlite-1.0.3.tar.gz.

File metadata

  • Download URL: aioeasysqlite-1.0.3.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.0

File hashes

Hashes for aioeasysqlite-1.0.3.tar.gz
Algorithm Hash digest
SHA256 e6c47821840d1f6e2786a4e529e0bb5a90c1b85dcc107c677d11fb6fe4a912d3
MD5 b961f8bc527fd31bad07260aede1a7cd
BLAKE2b-256 dcdf324c3d905aff1f4140e86e92e997fe28def8bb8c4476200a34f4d13c7db0

See more details on using hashes here.

File details

Details for the file aioeasysqlite-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: aioeasysqlite-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.0

File hashes

Hashes for aioeasysqlite-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9dcce9b50e6e6705bb9fa5def0ae3e75f7f57244d4e884d0b5e87e51a9c60a26
MD5 e7f57845dea59fff00cf4ac1d76eeee3
BLAKE2b-256 75ce51f5bad9f3bbbdb9c376803f34ddfb4c97b6818b7b360a1ddf3f54239cee

See more details on using hashes here.

Supported by

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