Назад на сайт-визитку

учебный проект · flask · crud

Medical — простая информационная система на Flask (CRUD)

Medical — это учебный проект, созданный для практики работы с Flask, SQLite, маршрутами, формами и CRUD-операциями. Цель проекта — не имитация полноценной медсистемы, а отработка навыков: как подключать базу данных, выводить списки, делать формы создания и редактирования.

Python Flask SQLite Jinja2 HTML
Скриншот проекта Medical

Цель проекта

Цель была максимально практичной: научиться работать с 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 я делал всё самостоятельно:

Исходный код

GitHub-репозиторий проекта

github.com/MorFusti/Medical
Открыть код →