Python: Веб-разработка (Flask)
2026-02-26 17:22 Diff

Среди сайтов выделяют «статические» — сайты, которые представляют собой готовый набор HTML-страниц. Например, так сделаны наши руководства на https://guides.hexlet.io/ru/. Удобно, быстро и дешево. Статическим сайтам не нужно куда-то сохранять информацию, их данные хранятся прямо в HTML.

Чтобы создать статические сайты, используют специальные генераторы, например, https://jekyllrb.com/.

Остальным сайтам повезло меньше. Всё, что создается пользователем, нужно куда-то сохранять. Самый простой способ сохранять — использовать файлы. Насколько он простой, настолько же нерабочий. Блокировки файловой системы не позволят работать с файлом в конкурентной среде. Такой средой является веб, когда с сайтом могут одновременно работать сотни тысяч пользователей.

Поэтому важно понимать устройство операционных систем. https://ru.hexlet.io/pages/recommended-books

Возможность долговременного хранения состояния называется персистентностью. Для персистентного или постоянного хранения данных принято использовать специализированные программы — базы данных. Взаимодействие с ними строят двумя способами:

  • Напрямую через библиотеку, которая предназначена для данной базы данных
  • Через ORM, которая в большинстве случаев прячет базу данных за большим количеством абстракций

Тема хранения данных очень глубока и требует определенной подготовки. Но профессия построена так, чтобы мы как можно быстрее добрались до веба и научились с ним работать. По этой причине в следующих уроках данные пользователя будут сохраняться в сессии — механизм работающий поверх Cookie. Это будет делаться через предоставленную абстракцию репозитория:

Репозиторий отвечает за хранение конкретной сущности. Для каждой свой: пользователи — UserRepository, машины — CarRepository и так далее.

Все репозитории в следующих уроках созданы специально для этого курса. Они не являются частью фреймворка Flask или ORM. Исходные файлы любого репозитория доступны в практике.