База данных
Как использовать базы данных для хранения постоянных данных. ВО время работы плагина бывает необходимость сохранять данные в хранилище, для последующего использования.
Почему не ORM?
Заголовок раздела «Почему не ORM?»Для небольшого проекта накладно тащить полноценную ORM. Все они выглядят достаточно громоздко и приносят пока больше неудобств. Возможно в будущем начнётся использоваться одна из ORM.
Однако в проекте используются похожии на ORM принципы.
Определение
Заголовок раздела «Определение»Итак, первым делом нужно определить модель данных, в которой мы будем
хранить информацию.
Для этого воспользуемся классом DMModel:
@dataclass(slots=True)class UserHello(DBModel): """Счётчик приветствий пользователя."""
user_id: int counter: int = 0И вопреки ожиданиям, дальше нам следует создать таблицу базы данных.
Ждя этого используется класс DBTable.
class HelloTable(DBTable): def create_table(self) -> None: ...По традиции название класса оканчивается на Table.
Использование
Заголовок раздела «Использование»После того как вы создали таблицу, вам обязательно нужно её подключить к клиенту, чтобы он знал о существовании такой таблицы.
client.add_table(HelloTable)Часто подключение таблицы к клиенту происходит во время запуска плагина.