Package: pypostgresutil
PostgreSQLController LibraryБиблиотека для управления PostgreSQL базой данных, создана совместными усилиямиLanutrixиAn0nX.УстановкаНа pypi.org либо как покеазано нижеpipinstallpsycopg2-binary
pipinstallloguruИспользованиеfrompypostgresutilimportPostgreSQLController# Инициализация контроллера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."""Чтение данныхdefread(self,table:str,columns:str,requirement:str="")->list:"""Чтение данных из указанной таблицы в базе данных.Аргументы:table (str): Имя таблицы для чтения.columns (str): Столбцы, которые нужно выбрать из таблицы.requirement (str, опционально): Дополнительное условие фильтрации данных. По умолчанию "".Возвращает:list: Список кортежей, представляющих результат запроса."""Запись данныхdefwrite(self,table:str,columns:str,values:str)->bool:"""Запись данных в указанную таблицу базы данных.Аргументы:table (str): Имя таблицы для записи.columns (str): Столбцы, в которые нужно вставить данные.values (str): Значения, которые нужно вставить в столбцы.Возвращает:bool: True, если операция записи успешна, False в противном случае."""Обновление данныхdefupdate(self,table:str,data:str,requirement:str)->bool:"""Обновление таблицы в базе данных с заданными данными и условием.Параметры:table (str): Имя таблицы для обновления.data (str): Данные для установки в таблице.requirement (str): Условие для идентификации строк для обновления.Возвращает:bool: True, если обновление прошло успешно, False в противном случае."""Удаление данныхdefdelete(self,table:str,requirement:str)->bool:"""Удаление строки из указанной таблицы на основе заданного условия.Параметры:table (str): Имя таблицы, из которой нужно удалить строку.requirement (str): Условие, которому должна удовлетворять строка для удаления.Возвращает:bool: True, если удаление прошло успешно, False в противном случае."""Закрытие соединенияdefclose(self):"""Закрытие соединения с PostgreSQL.Эта функция закрывает соединение с PostgreSQL, установленное методом `connect`.Она регистрирует действие закрытия соединения с использованием объекта `logger`.Параметры:NoneВозвращает:None"""Асинхронное чтение данныхasyncdefread_async(self,table:str,columns:str,requirement:str="")->list:"""Асинхронное чтение данных из указанной таблицы.Аргументы:table (str): Имя таблицы для чтения.columns (str): Столбцы, которые нужно извлечь из таблицы.requirement (str, опционально): Условие для фильтрации данных. По умолчанию "".Возвращает:List[Record]: Результат запроса."""Асинхронная запись данныхasyncdefwrite_async(self,table:str,columns:str,values:str)->bool:"""Асинхронная функция записи данных в указанную таблицу базы данных.Параметры:table (str): Имя таблицы для записи данных.columns (str): Строка с именами столбцов для вставки данных.values (str): Строка с значениями для вставки в столбцы.Возвращает:bool: True, если операция записи успешна, False в противном случае."""Асинхронное обновление данныхasyncdefupdate_async(self,table:str,data:str,requirement:str)->bool:"""Асинхронное обновление таблицы в базе данных с заданными данными и условием.Аргументы:table (str): Имя таблицы для обновления.data (str): Данные для установки в таблице.requirement (str): Условие для обновления строк.Возвращает:bool: True, если обновление успешно, False в противном случае."""Асинхронное удаление данныхasyncdefdelete_async(self,table:str,requirement:str)->bool:"""Асинхронное удаление строк из таблицы на основе заданного условия.Параметры:table (str): Имя таблицы, из которой нужно удалить строки.requirement (str): Условие для фильтрации строк для удаления.Возвращает:bool: True, если удаление успешно, False в противном случае."""ЛогированиеДля логирования используется библиотека loguru. Логи содержат информацию об установке соединения, создании таблицы, операциях чтения, записи, обновления и удаления данных, а также закрытии соединения.Обработка ошибокВ случае возникновения ошибок при работе с PostgreSQL, они логируются с использованием уровня логирования "critical" или "error". Сами ошибки не пробрасываются из библиотеки, чтобы избежать прекращения работы программы из-за исключений.Зависимостиpsycopg2-binaryloguruЛицензияЭта библиотека распространяется под лицензией MIT. Подробную информацию смотрите в файле LICENSE.