1. Основы веба: HTTP, REST и старт во Flask
Основы веба: HTTP, REST и старт во Flask
Этот курс посвящён веб-разработке на Flask и ускорению работы через AI-прототипирование. Но прежде чем генерировать код и собирать приложения, важно понять базовые правила игры: как клиент общается с сервером, что такое HTTP и как проектировать API в стиле REST. В конце статьи вы запустите первый минимальный проект на Flask.
Как устроен веб
Веб-приложение почти всегда состоит из двух сторон:
Ключевая идея: клиент и сервер общаются по сети по стандартному протоколу.
!Базовая схема общения клиента и сервера по HTTP и обращение сервера к базе данных
HTTP простыми словами
HTTP — это протокол, то есть набор правил, по которым клиент формулирует запрос, а сервер возвращает ответ. Практически любая веб-страница, форма входа, запрос к API или загрузка изображения — это HTTP-обмен.
Полезные справочники:
Из чего состоит HTTP-запрос
Обычно в запросе есть:
GET, POST)./users/42).POST, PUT, PATCH).Пример «как выглядит идея запроса»:
Из чего состоит HTTP-ответ
Ответ обычно включает:
Content-Type).Пример:
!Анатомия HTTP-запроса и HTTP-ответа
Основные HTTP-методы
GET: получить данные (например, список задач).POST: создать ресурс или запустить действие (например, создать задачу).PUT: заменить ресурс целиком (например, полностью обновить профиль).PATCH: частично обновить ресурс.DELETE: удалить ресурс.Важно: в реальной практике бывают исключения, но в REST-подходе обычно стремятся, чтобы смысл методов сохранялся.
Коды ответа, которые встречаются чаще всего
200 OK: запрос успешен.201 Created: ресурс создан (часто после POST).204 No Content: успешно, но тело ответа не нужно.400 Bad Request: некорректный запрос (например, не прошла валидация).401 Unauthorized: нужна аутентификация.403 Forbidden: доступ запрещён.404 Not Found: ресурс не найден.500 Internal Server Error: ошибка на стороне сервера.Заголовки и форматы данных
Часто встречающиеся заголовки:
Content-Type: формат данных в теле (например, application/json).Accept: какой формат ответа ожидает клиент.Authorization: данные для авторизации.Популярные форматы:
API и REST
API — это интерфейс, через который одна программа общается с другой. В вебе это обычно набор HTTP-эндпоинтов.
REST — популярный стиль проектирования API, где акцент на ресурсах и предсказуемых правилах.
Ресурсы и адреса
В REST часто мыслят существительными:
/users — коллекция пользователей/users/42 — конкретный пользователь/tasks — коллекция задач/tasks/10 — конкретная задачаВместо «глагольных» адресов вроде /createUser обычно используют сочетание адреса ресурса и HTTP-метода.
!Как методы HTTP сочетаются с URL ресурсов в REST
Мини-набор практических правил REST
Первый старт во Flask
Flask — лёгкий Python-фреймворк для веб-приложений. Он хорошо подходит для обучения, прототипов и небольших сервисов, а при правильной архитектуре — и для более серьёзных проектов.
Официальная документация:
Установка и виртуальное окружение
Пример команд:
Минимальное приложение
Создайте файл app.py:
Запустите:
Откройте в браузере адрес, который появится в консоли (обычно http://127.0.0.1:5000/).
Что такое роутинг
Роут (маршрут) связывает:
/ или /users/42)GET)В Flask это задаётся декоратором, например @app.get("/path").
Возврат JSON (заготовка под API)
Flask умеет удобно возвращать JSON через jsonify:
Здесь вы уже делаете небольшой API-эндпоинт. В следующих статьях мы расширим это до полноценного REST API.
Как проверять эндпоинты без браузера
Для API удобно использовать curl:
Это привычный способ быстро проверять ответы, коды статуса и JSON.
Как этот материал связан с тем, что будет дальше
В следующих статьях курса мы перейдём к практической разработке на Flask: обработка параметров запроса, шаблоны, формы, затем подключим базу данных PostgreSQL и SQLAlchemy, а позже обсудим, как ускорять прототипирование с помощью AI-инструментов и как тестировать приложение.