CoolDB - это модуль для удобного использования баз данных на основе sqlite3 - для синхронного и асинхронного взаимодействия с базами данных.
SyncDataBaseRequests - это надстройка над sqlite3, призванная ускорить работу с базами данных sqlite в синхронном режиме.
Прелесть синхронного режима функций в том, что мы можем вызывать их, как в синхронном режиме, так и в асинхронном из кроутин, либо блокируя их действие, либо прокидывая их в асинхронный режим, по средствам asyncio.to_thread(). И все таки более предпочтительным будет использовать асинхнонные варианты функций, чтобы попросту экономить мощности.
from CoolDB.SyncDataBaseRequests import RegRequests
def main():
if RegRequests.get_db(
dataBase="path/filename",
table_name="your_table_name",
columns="(name TEXT, age INTEGER, sex TEXT)"
) is False:
return 1
if RegRequetsts.insert_to_db(
dataBase="path/filename",
table_name="your_table_name",
parameters=["Игорь", 41, "Боевой вертолет СУ-34"]
) is False:
return 1
print(RegRequests.fetch_all(
dataBase="path/filename",
table_name="your_table_name"
))
if __name__ == "__main__":
main()
AsyncDataBaseRequests - это надстройка над aiosqlite, призванная ускорить работу с базами данных sqlite в асинхронном режиме.
При асинхронном режиме все точно также, только функции вызываются из кроутин.
import asyncio
from CoolDB.AsyncDataBaseRequests import RegRequests
async def main():
if await RegRequests.get_db(
dataBase="path/filename",
table_name="your_table_name",
columns="(name TEXT, age INTEGER, sex TEXT)"
) is False:
return 1
if await RegRequetsts.insert_to_db(
dataBase="path/filename",
table_name="your_table_name",
parameters=["Игорь", 41, "Боевой вертолет СУ-34"]
) is False:
return 1
print(await RegRequests.fetch_all(
dataBase="path/filename",
table_name="your_table_name"
))
if __name__ == "__main__":
asyncio.run(main())
Разница между синхронном и асинхронным режимами в импортруемых модулях и в том, что в асинхронном режими функции вызываются из кроутин с добавлением ключевого слова await.
В CoolDB собраны регулярные функции взаимодействия с базами данных и помещены в класс RegRequest модуля SyncDataBaseRequests или AsyncDataBaseRequests и, начиная с версии 0.2, ряд функция был дополнен классом MultiConditionsRequests, далее в документации функции, которые вошли в этот класс будут помечены:
Функция get_db() используется для создания таблицы в базе данных, если такой еще не существует. Попутно создает и базу данных, если ее еще не существует.
get_db(dataBase: str, table_name: str, columns: str) -> bool
Функция get_db() принимает три аргумента:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
-
table_name - название таблицы в базе данных. Должен передаваться в формате строки.
-
columns - столбцы, с которыми необходимо будет создать базу данных, если она еще не была создана. Должны передаваться в формате строки формата: "(SQL_VARS)".
parameters = "(name TEXT, age INTEGER, sex TEXT)"
Пример использования:
if RegRequests.get_db(
dataBase="path/filename",
table_name="your_table_name",
columns="(name TEXT, age INTEGER, sex TEXT)"
) is False:
return 1
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.
Функция insert_to_db() используется для добавления элементов во все столбцы таблицы. Попутно создает и базу данных, если ее еще не существует.
insert_to_db(dataBase: str, table_name: str, parameters: list) -> bool
Функция insert_to_db() принимает три аргумента:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
-
table_name - название таблицы в базе данных. Должен передаваться в формате строки.
-
parameters - параметры, которые необходимо будет поместить в базу данных. Должны передаваться в формате списка из переменных или значений.
Пример использования:
if RegRequests.insert_to_db(
dataBase="path/filename",
table_name="your_table_name",
parameters=[X, Y, N, 42]
) is False:
return 1
insert_to_db() записывает значения во все существующие столбцы, поэтому количество передаваемых параметров, должно быть равным количеству существующих столбцов. В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.
Функция insert_to_db_one_par() используется для добавления элемента или элементов в определенный столбец или столбцы таблицы. Попутно создает и базу данных, если ее еще не существует.
insert_to_db_one_par(dataBase: str, table_name: str, column_name: str, parameter: str) -> bool
Функция insert_to_db_one_par() принимает четыре аргумента:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
-
table_name - название таблицы в базе данных. Должен передаваться в формате строки.
-
column_name - названия столбца или столбцов, куда необходимо записать значения. Названия столбцов должны передаваться списком из названий в формате строки.
-
parameter - параметр, который необходимо будет поместить в базу данных или несколько параметров для определенных столбцов. Должны передаваться в формате строки формата "'X', 'Y', 'N'".
Пример использования:
if RegRequests.insert_to_db_one_par(
dataBase="path/filename",
table_name="your_table_name",
column_name="forX, forY, forN"
parameter="'X', 'Y', 'N'"
) is False:
return 1
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.
Функция fetch_all_where() используется для извлечения элементов из всех столбцов всех строк, в которых параметр поиска равен значению параметра поиска - условно, извлечь все столбцы всех строк, где айди=13.
###Для класса ReqRequests###
fetch_all_where(dataBase: str, table_name: str, condition: str, condition_value: str | int) -> list[dict] | None
###Для класса MultiConditionsRequests###
fetch_all_where(dataBase: str, table_name: str, condition: list, condition_value: list) -> list[dict] | None
Функция fetch_all_where() принимает четыре аргумента:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
-
table_name - название таблицы в базе данных. Должен передаваться в формате строки.
-
condition - параметер, по которому будет производится поиск в таблице.
-
condition_value - значение параметра, по которому будет производится поиск в таблице.
Пример использования:
###Для класса ReqRequests###
if RegRequests.fetch_all_where(
dataBase="path/filename",
table_name="your_table_name",
condition="id_",
condition_value="121212"
) is None:
return 1
###Для класса MultiConditionsRequests###
if MultiConditionsRequests.fetch_all_where(
dataBase="path/filename",
table_name="your_table_name",
condition=[
"id_",
"time"
],
condition_value=[
"121212",
"145353"
]
) is None:
return 1
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.
fetch_all(dataBase: str, table_name: str) -> list[dict] | None
Функция fetch_all() принимает два аргумента:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
- table_name - название таблицы в базе данных. Должен передаваться в формате строки.
Пример использования:
if RegRequests.fetch_all(
dataBase="path/filename",
table_name="your_table_name"
) is None:
return 1
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.
###Для класса ReqRequests###
fetch_one(dataBase: str, table_name: str, column_name: str, condition: str, condition_value: str | int) -> Any | None
###Для класса MultiConditionsRequests###
fetch_one(dataBase: str, table_name: str, column_name: str, condition: list, condition_value: list) -> Any | None
Функция fetch_one() принимает пять аргументов:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
-
table_name - название таблицы в базе данных. Должен передаваться в формате строки.
-
column_name - названия столбца, откуда необходимо извлечь значение.
-
condition - параметер, по которому будет производится поиск в таблице.
-
condition_value - значение параметра, по которому будет производится поиск в таблице.
Пример использования:
###Для класса ReqRequests###
if RegRequests.fetch_one(
dataBase="path/filename",
table_name="your_table_name",
column_name="XYN",
condition="id_",
condition_value="121212"
) is None:
return 1
###Для класса MultiConditionsRequests###
if MultiConditionsRequests.fetch_one(
dataBase="path/filename",
table_name="your_table_name",
column_name="XYN",
condition=[
"id_",
"time"
],
condition_value=[
"121212",
"145353"
]
) is None:
return 1
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.
###Для класса ReqRequests###
fetch_one_column(dataBase: str, table_name: str, column_name: str, condition: str, condition_value: str | int) -> tuple | None
###Для класса MultiConditionsRequests###
fetch_one_column(dataBase: str, table_name: str, column_name: str, condition: list, condition_value: list) -> tuple | None
Функция fetch_one_column() принимает пять аргументов:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
-
table_name - название таблицы в базе данных. Должен передаваться в формате строки.
-
column_name - названия столбца, откуда необходимо извлечь значение.
-
condition - параметер, по которому будет производится поиск в таблице.
-
condition_value - значение параметра, по которому будет производится поиск в таблице.
Пример использования:
###Для класса ReqRequests###
if RegRequests.fetch_one(
dataBase="path/filename",
table_name="your_table_name",
column_name="XYN",
condition="id_",
condition_value="121212"
) is None:
return 1
###Для класса MultiConditionsRequests###
if MultiConditionsRequests.fetch_one(
dataBase="path/filename",
table_name="your_table_name",
column_name="XYN",
condition=[
"id_",
"time"
],
condition_value=[
"121212",
"145353"
]
) is None:
return 1
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.
exists_test(dataBase: str, table_name: str) -> bool
Функция exists_test() принимает два аргумента:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
- table_name - название таблицы в базе данных. Должен передаваться в формате строки.
Пример использования:
if RegRequests.exists_test(
dataBase="path/filename",
table_name="your_table_name"
) is False:
return 1
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.
###Для класса ReqRequests###
update_table(dataBase: str, table_name: str, column_name: str, new_meaning: str | int, condition: str, condition_value: str | int) -> bool
###Для класса MultiConditionsRequests###
update_table(dataBase: str, table_name: str, column_name: str, new_meaning: str | int, condition: list, condition_value: list) -> bool
Функция update_table() принимает шесть аргументов:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
-
table_name - название таблицы в базе данных. Должен передаваться в формате строки.
-
column_name - названия столбца, откуда необходимо извлечь значение.
-
new_meaning - новое значение выбранного столбца
-
condition - параметер, по которому будет производится поиск в таблице.
-
condition_value - значение параметра, по которому будет производится поиск в таблице.
Пример использования:
###Для класса ReqRequests###
if RegRequests.update_table(
dataBase="path/filename",
table_name="your_table_name",
column_name="XYN",
new_meaning="URAURAURAURAURA"
condition="id_",
condition_value="121212"
) is False:
return 1
###Для класса MultiConditionsRequests###
if MultiConditionsRequests.update_table(
dataBase="path/filename",
table_name="your_table_name",
column_name="XYN",
new_meaning="URAURAURAURAURA"
condition=[
"id_",
"time"
],
condition_value=[
"121212",
"145353"
]
) is False:
return 1
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.
Функция delete_from_table() используется для удаления строки, в столбце которой есть совпадения с условием.
###Для класса ReqRequests###
delete_from_table(dataBase: str, table_name: str, condition: str, condition_value: str | int) -> bool
###Для класса MultiConditionsRequests###
delete_from_table(dataBase: str, table_name: str, condition: list, condition_value: list) -> bool
Функция delete_from_table() принимает четыре аргумента:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
-
table_name - название таблицы в базе данных. Должен передаваться в формате строки.
-
condition - параметер, по которому будет производится поиск в таблице.
-
condition_value - значение параметра, по которому будет производится поиск в таблице.
Пример использования:
###Для класса ReqRequests###
if RegRequests.delete_from_table(
dataBase="path/filename",
table_name="your_table_name",
condition="id_",
condition_value="121212"
) is False:
return 1
###Для класса MultiConditionsRequests###
if MultiConditionsRequests.delete_from_table(
dataBase="path/filename",
table_name="your_table_name",
condition=[
"id_",
"time"
],
condition_value=[
"121212",
"145353"
]
) is False:
return 1
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.
delete_table(dataBase: str, table_name: str) -> bool
Функция delete_table() принимает два аргумента:
- dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
- table_name - название таблицы в базе данных. Должен передаваться в формате строки.
Пример использования:
if RegRequests.delete_table(
dataBase="path/filename",
table_name="your_table_name"
) is False:
return 1
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.