Этот проект представляет собой небольшой веб-фреймворк на чистом Python. Данный веб-фреймворк предназначен для обработки HTTP-запросов и выдачи ответов пользователю. В нем используются классы API, Request, Response, Middleware и View для обработки запросов, передачи данных и установки идентификатора сессии в куках. В качестве WSGI сервера используется gunicorn
Класс Session в middleware используется для установки идентификатора сессии (uuid) в качестве куки в объекте Request и объекте Response. Если кука уже была установлена для конкретного пользователя, то при обновлениии страницы, она не меняется, только если ее удалить то она обновится.
- Через точку входа модуля main.py попадаем в метод call нашего класса API. Там мы формируем объект request (хранит данные о входящем соединении и пользователе).
- Далее этот request перопускается через middleware слои и наполняться инфой.
- Наш request попадает во View.
- View возвращает объект response, который также проходит через middlewares.
- Возвращается код ответа, заголовки, тело обратно пользователю.
- Установите Docker и Docker Compose.
- Склонируйте репозиторий на свой компьютер.
- Перейдите в директорию проекта и запустите docker-compose up.
- Откройте браузер и перейдите по адресу http://localhost:8000/.
Данный веб-фреймворк создан исключительно в учебных целях и не предназначен для использования в реальных проектах, так как здесь не реализованы меры безопасности, такие как защита от межсайтовой подделки запросов (CSRF), что может привести к уязвимостям в безопасности приложения. Кроме того, любой, кто получит доступ к куке, сможет выполнять любые действия от имени пользователя, что также небезопасно. Также в данном фреймворке не проводилась оптимизации производительности.