Skip to main content

A simple library for working with SQLite3 databases.

Project description

QuickSQL3

English | Русский


English

QuickSQL3 is a Python library designed to simplify working with SQLite databases. It provides both synchronous and asynchronous APIs for performing common database operations with SQLite. The library is ideal for developers who want an intuitive interface for database operations without writing raw SQL queries.

Features

  • Dual APIs: Choose between synchronous (Database) and asynchronous (AsyncDatabase) interfaces
  • Comprehensive CRUD: Create, Read, Update, Delete operations with simple method calls
  • Schema Management: Create tables, alter columns, rename tables, and more
  • Type Safety: Full type annotations for better code clarity and IDE support
  • Error Handling: Built-in error handling with detailed logging
  • Flexible Querying: Support for WHERE clauses, parameterized queries, sorting, and pagination

Installation

Install using pip:

pip install QuickSQL3

Documentation

Synchronous API (Database)

from QuickSQL3 import Database

# Initialize database
db = Database("app.db")

# Table operations
db.create_table("users", {"id": "INTEGER PRIMARY KEY", "name": "TEXT"})
db.edit_table_name("users", "customers")
db.add_column("customers", {"email": "TEXT UNIQUE"})

# Data operations
row_id = db.insert("customers", {"name": "Alice", "email": "alice@example.com"})
results = db.select("customers", where="name LIKE ?", params=("A%",))
db.update("customers", {"email": "new@example.com"}, where="id = ?", params=(row_id,))
db.delete("customers", where="id = ?", params=(row_id,))

# Close connection
db.close()

Asynchronous API (AsyncDatabase)

from QuickSQL3 import AsyncDatabase

async def main():
    # Initialize database
    db = AsyncDatabase("app.db")
    await db.connect()
    
    # Table operations
    await db.create_table("products", {"id": "INTEGER PRIMARY KEY", "name": "TEXT"})
    await db.edit_column_name("products", "name", "product_name")
    
    # Data operations
    await db.insert("products", {"product_name": "Laptop"})
    results = await db.select("products")
    
    # Close connection
    await db.close()

Examples

Basic Usage

from QuickSQL3 import Database

with Database("example.db") as db:
    # Create table
    db.create_table("employees", {
        "id": "INTEGER PRIMARY KEY",
        "name": "TEXT NOT NULL",
        "salary": "REAL"
    })
    
    # Insert data
    db.insert("employees", {"name": "John Doe", "salary": 75000.50})
    
    # Query data
    employees = db.select("employees", where="salary > ?", params=(50000,))
    print(employees)

Advanced Querying

# Complex query with sorting and pagination
results = db.select(
    "orders",
    where="customer_id = ? AND date > ?",
    params=(123, "2023-01-01"),
    columns=["id", "total", "status"],
    order_by="total DESC",
    limit=10,
    offset=5
)

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

License

MIT License


Русский

QuickSQL3 — это Python-библиотека для удобной работы с базами данных SQLite. Она предоставляет как синхронный, так и асинхронный API для выполнения стандартных операций с базой данных без необходимости писать сырые SQL-запросы.

Возможности

  • Двойной API: На выбор синхронный (Database) и асинхронный (AsyncDatabase) интерфейсы
  • Полный CRUD: Создание, чтение, обновление и удаление данных простыми методами
  • Управление схемой: Создание таблиц, изменение столбцов, переименование таблиц
  • Типизация: Полная поддержка аннотаций типов для удобства разработки
  • Обработка ошибок: Встроенная система обработки ошибок с детальным логированием
  • Гибкие запросы: Поддержка условий WHERE, параметризованных запросов, сортировки и пагинации

Установка

Установка через pip:

pip install QuickSQL3

Документация

Синхронный API (Database)

from QuickSQL3 import Database

# Инициализация базы данных
db = Database("app.db")

# Операции с таблицами
db.create_table("пользователи", {"id": "INTEGER PRIMARY KEY", "имя": "TEXT"})
db.edit_table_name("пользователи", "клиенты")
db.add_column("клиенты", {"email": "TEXT UNIQUE"})

# Операции с данными
row_id = db.insert("клиенты", {"имя": "Алиса", "email": "alice@example.com"})
results = db.select("клиенты", where="имя LIKE ?", params=("А%",))
db.update("клиенты", {"email": "new@example.com"}, where="id = ?", params=(row_id,))
db.delete("клиенты", where="id = ?", params=(row_id,))

# Закрытие соединения
db.close()

Асинхронный API (AsyncDatabase)

from QuickSQL3 import AsyncDatabase

async def main():
    # Инициализация базы данных
    db = AsyncDatabase("app.db")
    await db.connect()
    
    # Операции с таблицами
    await db.create_table("товары", {"id": "INTEGER PRIMARY KEY", "название": "TEXT"})
    await db.edit_column_name("товары", "название", "имя_товара")
    
    # Операции с данными
    await db.insert("товары", {"имя_товара": "Ноутбук"})
    results = await db.select("товары")
    
    # Закрытие соединения
    await db.close()

Примеры

Базовое использование

from QuickSQL3 import Database

with Database("example.db") as db:
    # Создание таблицы
    db.create_table("сотрудники", {
        "id": "INTEGER PRIMARY KEY",
        "имя": "TEXT NOT NULL",
        "зарплата": "REAL"
    })
    
    # Вставка данных
    db.insert("сотрудники", {"имя": "Иван Иванов", "зарплата": 75000.50})

    # Запрос данных
    employees = db.select("сотрудники", where="зарплата > ?", params=(50000,))
    print(employees)

Участие

Приветствуются contributions! Создавайте issue или отправляйте pull request на GitHub.

Лицензия

MIT License

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

quicksql3-0.1.4.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

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

quicksql3-0.1.4-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file quicksql3-0.1.4.tar.gz.

File metadata

  • Download URL: quicksql3-0.1.4.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for quicksql3-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1af9b3973b173478031e37b09fcb296ea4f476c5a9b2684b3d89382a5d2f2a9b
MD5 39a724ab0c0dd3851a40421593e553d6
BLAKE2b-256 4b6a1241232c1f44a6188e3383d07af494071cdf054fc9b7b78d75f792cb4575

See more details on using hashes here.

File details

Details for the file quicksql3-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: quicksql3-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for quicksql3-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 65dd22f0c6f399ba3ada4a837a3eff6dbfcad9c82d4a8cd230b42985f7925503
MD5 9ddccf02200da1785f64cd31f7fe3ba1
BLAKE2b-256 25a45641e892e746d945be1164aa994d12356669da5355b16f57a40c590236a8

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