Python library for simple PostgreSQL management
Project description
PostgreSQLController Library
Библиотека для управления PostgreSQL базой данных, создана совместными усилиями Lanutrix и An0nX.
Установка
На pypi.org либо как покеазано ниже
pip install psycopg2-binary
pip install loguru
Использование
from pypostgresutil import PostgreSQLController
# Инициализация контроллера
controller = PostgreSQLController()
# Чтение данных
data = controller.read(table="example_table", columns="*", requirement="column_name='value'")
print(data)
# Запись данных
success = controller.write(table="example_table", columns="column1, column2", values="'value1', 'value2'")
print(success)
# Обновление данных
update_success = controller.update(table="example_table", data="column1='new_value'", requirement="column2='old_value'")
print(update_success)
# Удаление данных
delete_success = controller.delete(table="example_table", requirement="column_name='value'")
print(delete_success)
# Закрытие соединения
controller.close()
API
Конструктор
def __init__(self, host: str = "localhost", user: str = "postgres", password: str = "postgres", database: str = "postgres", table_definition: str = None) -> None:
"""
Инициализация нового экземпляра класса.
Параметры:
host (str): Адрес сервера PostgreSQL. По умолчанию "localhost".
user (str): Имя пользователя PostgreSQL. По умолчанию "postgres".
password (str): Пароль пользователя PostgreSQL. По умолчанию "postgres".
database (str): Имя базы данных PostgreSQL. По умолчанию "postgres".
table_definition (str): Запрос определения таблицы для создания таблицы в базе данных.
Возвращает:
None
Вызывает:
Exception: Если произошла ошибка при работе с PostgreSQL.
"""
Чтение данных
def read(self, table: str, columns: str, requirement: str = "") -> list:
"""
Чтение данных из указанной таблицы в базе данных.
Аргументы:
table (str): Имя таблицы для чтения.
columns (str): Столбцы, которые нужно выбрать из таблицы.
requirement (str, опционально): Дополнительное условие фильтрации данных. По умолчанию "".
Возвращает:
list: Список кортежей, представляющих результат запроса.
"""
Запись данных
def write(self, table: str, columns: str, values: str) -> bool:
"""
Запись данных в указанную таблицу базы данных.
Аргументы:
table (str): Имя таблицы для записи.
columns (str): Столбцы, в которые нужно вставить данные.
values (str): Значения, которые нужно вставить в столбцы.
Возвращает:
bool: True, если операция записи успешна, False в противном случае.
"""
Обновление данных
def update(self, table: str, data: str, requirement: str) -> bool:
"""
Обновление таблицы в базе данных с заданными данными и условием.
Параметры:
table (str): Имя таблицы для обновления.
data (str): Данные для установки в таблице.
requirement (str): Условие для идентификации строк для обновления.
Возвращает:
bool: True, если обновление прошло успешно, False в противном случае.
"""
Удаление данных
def delete(self, table: str, requirement: str) -> bool:
"""
Удаление строки из указанной таблицы на основе заданного условия.
Параметры:
table (str): Имя таблицы, из которой нужно удалить строку.
requirement (str): Условие, которому должна удовлетворять строка для удаления.
Возвращает:
bool: True, если удаление прошло успешно, False в противном случае.
"""
Закрытие соединения
def close(self):
"""
Закрытие соединения с PostgreSQL.
Эта функция закрывает соединение с PostgreSQL, установленное методом `connect`.
Она регистрирует действие закрытия соединения с использованием объекта `logger`.
Параметры:
None
Возвращает:
None
"""
Асинхронное чтение данных
async def read_async(self, table: str, columns: str, requirement: str = "") -> list:
"""
Асинхронное чтение данных из указанной таблицы.
Аргументы:
table (str): Имя таблицы для чтения.
columns (str): Столбцы, которые нужно извлечь из таблицы.
requirement (str, опционально): Условие для фильтрации данных. По умолчанию "".
Возвращает:
List[Record]: Результат запроса.
"""
Асинхронная запись данных
async def write_async(self, table: str, columns: str, values: str) -> bool:
"""
Асинхронная функция записи данных в указанную таблицу базы данных.
Параметры:
table (str): Имя таблицы для записи данных.
columns (str): Строка с именами столбцов для вставки данных.
values (str): Строка с значениями для вставки в столбцы.
Возвращает:
bool: True, если операция записи успешна, False в противном случае.
"""
Асинхронное обновление данных
async def update_async(self, table: str, data: str, requirement: str) -> bool:
"""
Асинхронное обновление таблицы в базе данных с заданными данными и условием.
Аргументы:
table (str): Имя таблицы для обновления.
data (str): Данные для установки в таблице.
requirement (str): Условие для обновления строк.
Возвращает:
bool: True, если обновление успешно, False в противном случае.
"""
Асинхронное удаление данных
async def delete_async(self, table: str, requirement: str) -> bool:
"""
Асинхронное удаление строк из таблицы на основе заданного условия.
Параметры:
table (str): Имя таблицы, из которой нужно удалить строки.
requirement (str): Условие для фильтрации строк для удаления.
Возвращает:
bool: True, если удаление успешно, False в противном случае.
"""
Логирование
Для логирования используется библиотека loguru. Логи содержат информацию об установке соединения, создании таблицы, операциях чтения, записи, обновления и удаления данных, а также закрытии соединения.
Обработка ошибок
В случае возникновения ошибок при работе с PostgreSQL, они логируются с использованием уровня логирования "critical" или "error". Сами ошибки не пробрасываются из библиотеки, чтобы избежать прекращения работы программы из-за исключений.
Зависимости
- psycopg2-binary
- loguru
Лицензия
Эта библиотека распространяется под лицензией MIT. Подробную информацию смотрите в файле LICENSE.
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
Built Distribution
Hashes for pypostgresutil-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 385166a2090f0c9e83af110f156788eb0d4c2db62b88185ac830b37092fbfa7c |
|
MD5 | ce78fc38b10a822df4732d8ad5c6814f |
|
BLAKE2b-256 | a0357c7faff11e880be297c1df78da7651504dceb3d3f2f35dd490a95198b4c8 |