учебный проект · flask · crud
Medical — простая информационная система на Flask (CRUD)
Medical — это учебный проект, созданный для практики работы с Flask, SQLite, маршрутами, формами и CRUD-операциями. Цель проекта — не имитация полноценной медсистемы, а отработка навыков: как подключать базу данных, выводить списки, делать формы создания и редактирования.
Цель проекта
Цель была максимально практичной: научиться работать с Flask и связанной базой данных, понять принципы маршрутов, шаблонов, подключения к БД и реализовать полный CRUD на примере пациентов. Никаких сложных модулей и API — только чистая практика.
На практике отрабатывалось:
- создание маршрутов Flask;
- работа с формами и методами GET/POST;
- взаимодействие с SQLite через SQL-запросы;
- вывод данных в Jinja2-шаблонах;
- создание, редактирование и удаление записей (CRUD).
Для тренировки использовались тестовые таблицы:
- пациенты;
- врачи;
- больницы и отделения;
- расширенные тестовые таблицы для запросов с JOIN.
Функциональность
Авторизация
- Форма входа по логину и паролю.
- Хэширование паролей через
check_password_hash. - Использование
sessionдля хранения пользователя. - Flash-сообщения об ошибках и выходе.
Просмотр данных
- Списки больниц, врачей, отделений.
- Список пациентов (основная таблица для CRUD).
- Простые таблицы вывода данных из SQLite.
- Запросы с JOIN для вывода связанных данных.
CRUD-операции
- Создание пациента (
/patients/create). - Редактирование пациента (
/patients/update/<id>). - Удаление записи.
- Проверка авторизации перед каждым действием.
Архитектура и структура проекта
Структура каталогов
main/— основной код Flask-приложения.templates/— HTML-шаблоны Jinja2.static/— файлы стилей и изображений.dbs/Medical.db— база данных SQLite.tests/— тестовые файлы.
Основной код
- Маршруты Flask находятся в каталоге
main. get_db_connection()— подключение к SQLite.- Маршруты для вывода данных из разных таблиц.
- CRUD-маршруты для пациентов.
Особенности учебной архитектуры
- Структура максимально простая — идеально для обучения.
- Чёткое разделение кода, шаблонов и базы.
- Легко расширяется под более сложные проекты.
Моя роль
В проекте Medical я делал всё самостоятельно:
- создал структуру SQLite-базы;
- написал маршруты и логику Flask;
- сделал вывод таблиц в шаблонах;
- реализовал CRUD-операции;
- добавил авторизацию и проверки доступа.
Исходный код
GitHub-репозиторий проекта
github.com/MorFusti/Medical