Skip to main content

Classic DB tools

Project description

Classic DB Tools

Идея библиотеки заключается в попытке работать с SQL-запросами как с шаблонами Jinja. Вдохновлено embrace и jinjasql, оттуда же бралась часть кода.

Установка:

pip install classic-db-tools

Quickstart:

from classic.db_tools import Engine, ConnectionPool
import psycopg

pool = ConnectionPool(psycopg.connect)
engine = Engine('path/to/sql/templates/dir', pool)

# При входе движок займет соединение в пуле,
# на выходе, по дефолту, закоммитит
with engine:
    # Применим схему:
    engine.from_file('tasks/ddl.sql').execute()
    
    # Сохранение данных
    engine.from_file('tasks/save.sql').executemany([
        {'title': 'Some Task', 'body': 'Do something'},
        {'title': 'Another Task', 'body': 'Do anything'},
    ])
    
    # Получение данных
    task = engine.from_file('tasks/get_by_id.sql').one(id=1)
    # (1, 'Some Task', 'Do something')

В директории sql рядом с .py файлом надо разместить 3 файла (можно найти в директории test/example):

sql/tasks/ddl.sql:

CREATE TABLE tasks (
    id serial PRIMARY KEY,
    title text,
    body text
);

sql/tasks/get_by_id.sql:

SELECT id, title, body FROM tasks WHERE id = %(id)s;

sql/tasks/save.sql:

INSERT INTO tasks (title, body) VALUES (%(title)s, %(body)s);

Возможности

Управление коннектом и транзакциями

Выполнение из файла и напрямую

Статические запросы

Динамические запросы

Выдача значений

Маппинг

Маппинг на классы

Маппинг на словари

Кастомные идентификаторы

Композитные ключи

Отложенные операции

ScopedConnection

Transaction

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

classic_db_tools-0.0.1.tar.gz (20.8 kB view details)

Uploaded Source

File details

Details for the file classic_db_tools-0.0.1.tar.gz.

File metadata

  • Download URL: classic_db_tools-0.0.1.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for classic_db_tools-0.0.1.tar.gz
Algorithm Hash digest
SHA256 31d96a92f1e6512360449ddad1c5752cc64d55f6a1f3da25d4f5ca0d5a6bbe0e
MD5 cf54de9d513760435a1d30683ea18fc3
BLAKE2b-256 d17ae7845620bc288086dacc3586d784fb5d06c3dd641993d3ac0a70847fc510

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