Skip to content

Веб-фреймворк на чистом Python с использованием Gunicorn в качестве WSGI.

Notifications You must be signed in to change notification settings

Gips22/my_web_framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Веб-фреймворк на чистом 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), что может привести к уязвимостям в безопасности приложения. Кроме того, любой, кто получит доступ к куке, сможет выполнять любые действия от имени пользователя, что также небезопасно. Также в данном фреймворке не проводилась оптимизации производительности.

About

Веб-фреймворк на чистом Python с использованием Gunicorn в качестве WSGI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published