📖 Теория: конспект блока Flask (Уроки 01–03)

🎯 Итоговое повторение

⚡ Краткий конспект

  • HTTP — протокол запрос-ответ. HTTPS = HTTP + шифрование SSL/TLS.
  • Flask — микрофреймворк. @app.route() связывает URL с функцией.
  • Конвертеры URL: string, int, float, path, uuid.
  • Postman — тестирование API: коллекции, переменные окружения, HTTP-методы.
  • PydanticBaseModel, Field(), @field_validator, JSON-сериализация.
  • venv — изолированное окружение. python -m venv venv.

HTTP и HTTPS

HTTP (HyperText Transfer Protocol) — протокол передачи данных между клиентом и сервером. Работает по схеме «запрос — ответ».

HTTPS (HyperText Transfer Protocol Secure) — тот же HTTP, но с шифрованием через SSL/TLS. Защищает данные от перехвата.

HTTPHTTPS
Порт 80Порт 443
Без шифрованияС шифрованием SSL/TLS
НебезопасенБезопасен

Flask vs Django

FlaskDjango
МикрофреймворкПолнофункциональный фреймворк
Минимум из коробкиORM, админка, аутентификация из коробки
Максимум гибкостиСтрогая структура
Для микросервисов, API, прототиповДля больших проектов

Структура Flask-приложения

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)
  1. from flask import Flask — импорт класса Flask.
  2. app = Flask(__name__) — создание приложения.
  3. @app.route('/') — декоратор маршрута.
  4. if __name__ == '__main__': — защита от импорта.
  5. app.run(debug=True) — запуск с автоперезагрузкой.

Конвертеры URL

КонвертерЧто принимаетПример
stringТекст без слешей (по умолчанию)/hello/anna
intЦелое положительное число/double/42
floatДробное число/square/3.14
pathТекст со слешами/reverse/a/b/c
uuidUUID-идентификатор/item/550e8400-...

Pydantic: ключевые концепции

  • BaseModel — базовый класс для всех моделей.
  • model_validate_json() — JSON → объект.
  • model_dump_json() — объект → JSON.
  • Field() — ограничения: gt, ge, le, min_length, max_length, default, alias.
  • @field_validator — кастомная валидация поля (v2).
  • @model_validator(mode='after') — валидация нескольких полей.
  • Config — глобальные настройки: str_strip_whitespace, validate_assignment, json_encoders.

Виртуальное окружение (venv)

# Создать
python -m venv venv

# Активировать (Windows)
venv\Scripts\activate

# Активировать (macOS / Linux)
source venv/bin/activate

# Деактивировать
deactivate

Git: ветки

# Создать и перейти в ветку
git checkout -b lesson/01-flask-intro

# Посмотреть ветки
git branch

# Закоммитить
git add .
git commit -m "feat: урок 01"