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.2.tar.gz
(21.1 kB
view details)
File details
Details for the file classic_db_tools-0.0.2.tar.gz.
File metadata
- Download URL: classic_db_tools-0.0.2.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cbe0bc38bafd18ab0418d3f864c7a2b7c79d180a7c90de3fb4bf2c446d1e0c1
|
|
| MD5 |
41c5ee3db4864d4ffbca7ef3cbce8af9
|
|
| BLAKE2b-256 |
2f98118b59a39da0cbbc13ce59f444ed3a19ea5aadb7c221d312882ff45c1c40
|