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

5.4. Модуль маршрутизации и обработки запросов (Flask-пути)

Модуль маршрутизации является центральным нервным узлом приложения, обрабатывающим все входящие HTTP-запросы и направляющим их соответствующим обработчикам. Каждый маршрут (декоратор @app.route) определяет точку входа в систему, связывая URL-адрес и метод HTTP с конкретной функцией-обработчиком. Система маршрутизации Flask поддерживает динамические сегменты URL, хотя в данном проекте используется минимально — в основном для обслуживания статических файлов по пути.

API-эндпоинты спроектированы в соответствии с RESTful принципами: GET-запросы используются для получения данных без побочных эффектов, POST-запросы — для создания новых сущностей (записей, заказов). Ответы API стандартизированы: успешные операции возвращают JSON-объект с полем success: true и соответствующими данными, а ошибки — различные HTTP-статусы (400 для некорректных запросов, 403 для недостатка прав, 404 для отсутствующих ресурсов, 500 для серверных ошибок) с пояснительными сообщениями.

Ключевой обработчик api_book() демонстрирует реализацию сложной бизнес-логики с множественными проверками. Процесс бронирования включает: проверку авторизации пользователя, валидацию входных данных, проверку существования и доступности запрашиваемого слота, проверку того, что время записи не в прошлом, атомарное обновление состояния слота, сохранение изменений в файловой системе и фиксацию факта записи в базе данных. Каждый шаг сопровождается соответствующей обработкой ошибок с возвратом понятных сообщений пользователю.

Удаление записи задействует Flask-эндпоинт /api/my_appointments/delete для обработки POST-запросов по удалению записи на приём из личного кабинета пользователя. Сначала проверяется наличие username в сессии — если авторизация отсутствует, возвращается ошибка. Затем из JSON-тела запроса извлекаются данные: id записи или комбинация clinic_name, doctor и appointment_time. Далее подключается база данных через get_db(), и с помощью курсора выполняется удаление из таблицы appointments_log. Если передан id, удаляется конкретная запись по этому ID и username пользователя.

5.5. Модуль управления сессиями и аутентификацией

Модуль управления аутентификацией построен на встроенном механизме сессий Flask, который использует криптографически подписанные cookies для хранения состояния между запросами. При регистрации нового пользователя система выполняет несколько проверок: уникальности имени пользователя, корректности email (базовая проверка на наличие символа @), заполненности обязательных полей.

Выход из системы реализован через полную очистку сессии (session.clear()), что гарантирует удаление всех связанных с пользователем данных из серверного хранилища сессий. Механизм сессий Flask по умолчанию хранит данные на сервере в зашифрованном виде, а в cookie передаётся только идентификатор сессии, что обеспечивает безопасность даже если cookie будут перехвачены.

Сценарии пользователя

В рамках проектирования и разработки веб-приложения «Медицинский портал» были рассмотрены и реализованы ключевые сценарии использования системы с точки зрения конечного пользователя. Эти сценарии охватывают полный цикл взаимодействия пациента с сервисом — от первоначального ознакомления с клиниками и услугами до успешной записи на прием.

Вход на форму регистрации:

Рисунок 2 - Форма регистрации на портале

Переход на вкладку корзины:

Рисунок 3 - Страница с корзиной

Переход на вкладку записей пациента:

Рисунок 4 - Страница с отсутствием записей

Переход на вкладку календаря:

Рисунок 5 - Страница с календарем

Переход на вкладку записи на прием:

Рисунок 6 - Страница записи на прием

Главная страница с клиниками:

Рисунок 7 - Главная страница с клиниками