A simple library for working with SQLite3 databases.
Project description
QuickSQL3
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1af9b3973b173478031e37b09fcb296ea4f476c5a9b2684b3d89382a5d2f2a9b
|
|
| MD5 |
39a724ab0c0dd3851a40421593e553d6
|
|
| BLAKE2b-256 |
4b6a1241232c1f44a6188e3383d07af494071cdf054fc9b7b78d75f792cb4575
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65dd22f0c6f399ba3ada4a837a3eff6dbfcad9c82d4a8cd230b42985f7925503
|
|
| MD5 |
9ddccf02200da1785f64cd31f7fe3ba1
|
|
| BLAKE2b-256 |
25a45641e892e746d945be1164aa994d12356669da5355b16f57a40c590236a8
|