Skip to content

Latest commit

 

History

History
30 lines (19 loc) · 3.09 KB

README.md

File metadata and controls

30 lines (19 loc) · 3.09 KB

Веб-фреймворк на чистом Python

Этот проект представляет собой небольшой веб-фреймворк на чистом Python. Данный веб-фреймворк предназначен для обработки HTTP-запросов и выдачи ответов пользователю. В нем используются классы API, Request, Response, Middleware и View для обработки запросов, передачи данных и установки идентификатора сессии в куках. В качестве WSGI сервера используется gunicorn

Класс Session в middleware используется для установки идентификатора сессии (uuid) в качестве куки в объекте Request и объекте Response. Если кука уже была установлена для конкретного пользователя, то при обновлениии страницы, она не меняется, только если ее удалить то она обновится.

Структура фреймворка.

  1. Через точку входа модуля main.py попадаем в метод call нашего класса API. Там мы формируем объект request (хранит данные о входящем соединении и пользователе).
  2. Далее этот request перопускается через middleware слои и наполняться инфой.
  3. Наш request попадает во View.
  4. View возвращает объект response, который также проходит через middlewares.
  5. Возвращается код ответа, заголовки, тело обратно пользователю.

Как запустить проект.

  • Установите Docker и Docker Compose.
  • Склонируйте репозиторий на свой компьютер.
  • Перейдите в директорию проекта и запустите docker-compose up.
  • Откройте браузер и перейдите по адресу http://localhost:8000/.

Заключение.

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