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
Release history Release notifications | RSS feed
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)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31d96a92f1e6512360449ddad1c5752cc64d55f6a1f3da25d4f5ca0d5a6bbe0e
|
|
| MD5 |
cf54de9d513760435a1d30683ea18fc3
|
|
| BLAKE2b-256 |
d17ae7845620bc288086dacc3586d784fb5d06c3dd641993d3ac0a70847fc510
|