Проект 3. CRUD-приложение с SQLite и MVC
Цель работы
- Реализовать CRUD (Create, Read, Update, Delete) для сущностей бизнес-логики приложения.
- Освоить работу с SQLite в памяти (
:memory:) через модуль sqlite3. - Понять принципы первичных и внешних ключей и их роль в связях между таблицами.
- Выделить контроллеры для работы с БД и для рендеринга страниц в отдельные модули.
- Использовать архитектуру MVC и соблюдать разделение ответственности.
- Отображать пользователям таблицу с валютами, на которые они подписаны.
- Реализовать полноценный роутер, который обрабатывает GET-запросы, выполняет сохранение/обновление данных и рендеринг страниц.
- Научиться тестировать функционал на примере сущностей currency и user с использованием unittest.mock.
Основные задачи
CRUD для Currency
- Create — добавление новых валют в базу данных.
- Read — вывод валют из базы данных.
- Update — обновление значения курса валюты.
- Delete — удаление валюты по id.
- Все действия выполняются с использованием параметризованных запросов для защиты от SQL-инъекций.
Работа с SQLite
- Использовать базу в памяти:
sqlite3.connect(':memory:'). - Объяснить назначение PRIMARY KEY и FOREIGN KEY и их роль в связях таблиц.
Выводы
Разработано приложение с сущностями пользователь и валюта. Реализованы CRUD-операции, связи между таблицами через первичные и внешние ключи, маршрутизация запросов и рендеринг HTML-страниц. Приложение построено по архитектуре MVC с разделением моделей, контроллеров и представлений.
- Технологии: Python, sqlite3, MVC, Jinja2, HTML, unittest.mock.
- Ссылка: GitHub репозиторий