Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программная инженерия. Курсовые / Вебтехнологии_Курсовая_Яковлев.docx
Скачиваний:
0
Добавлен:
04.01.2026
Размер:
800.32 Кб
Скачать

Обоснование выбора технологий

Выбор Flask в качестве веб-фреймворка:

Flask был выбран как фреймворк, предоставляющий необходимый минимум для создания веб-приложения без навязывания излишней структуры. Его преимущества для данного проекта:

· Минимализм и гибкость: позволяет быстро создавать маршруты (routes) и обработчики запросов, что идеально для учебного проекта и REST API.

· Простота интеграции: легко подключаются необходимые расширения (CORS для обработки запросов с фронтенда, работа с сессиями «из коробки»).

· Низкий порог входа: позволяет сосредоточиться на изучении принципов HTTP-взаимодействия и проектирования API, не отвлекаясь на сложности полноценных фреймворков.

· Альтернативы (Django, FastAPI) были отклонены: Django избыточен для небольшого API, FastAPI, хотя и быстр, требует большего погружения в асинхронность на начальном этапе.

Выбор MySQL в качестве системы управления базами данных:

MySQL 8.0 применяется для хранения операционных данных проекта.

· Надёжность и распространённость: Проверенная временем реляционная СУБД, обеспечивающая целостность данных и поддержку транзакций, что критично для учёта записей и заказов.

· Структурированность данных: Информация о пользователях, их записях и заказах идеально ложится на реляционную модель с внешними ключами и связями.

· Интеграция с Python: Библиотека pymysql предоставляет стабильный и понятный интерфейс для выполнения SQL-запросов, поддерживает параметризованные запросы для безопасности.

Выбор гибридной модели хранения (JSON + MySQL):

Архитектурное решение использовать JSON-файлы для части данных продиктовано спецификой задачи:

· JSON для «конфигурационных» данных: Информация о клиниках (название, адрес, список услуг) и предварительно сгенерированное расписание (слоты) изменяются относительно редко. Хранение их в файлах clinics.json и appointments.json упрощает процесс разработки, отладки и первоначального заполнения системы, избавляя от необходимости сложных миграций БД на раннем этапе.

· MySQL для «транзакционных» данных: Данные, связанные с действиями пользователей (учётные записи, факты записи, заказы), требуют гарантий целостности, безопасности и возможности сложных выборок (например, получение истории записей конкретного пользователя). Реляционная база данных — оптимальный выбор для этих задач.

· Такой подход демонстрирует понимание принципа разделения данных по частоте и характеру их использования.

Выбор pymysql для работы с MySQL:

Библиотека pymysql является Python реализацией клиента MySQL, что обеспечивает простоту установки и кроссплатформенность. Она предоставляет менеджер контекста для автоматического закрытия соединений, что соответствует практике Python и предотвращает утечки ресурсов.

Разработка структуры программы

Разработанное веб-приложение "Медицинский портал" представляет собой сложную распределённую систему, построенную по принципу трёхзвенной архитектуры с чётким разделением ответственности между компонентами. Серверная часть, реализованная на Python с использованием фреймворка Flask, выступает центральным узлом системы, обеспечивая взаимодействие между клиентской частью (браузером пользователя) и различными источниками данных. Архитектура системы сознательно спроектирована как гибридная, сочетающая простоту файлового хранения для статических справочных данных и мощь реляционной базы данных для операционных записей, что отражает современные подходы к проектированию веб-приложений.