⚡ Краткий конспект
- HTTP — протокол запрос-ответ. HTTPS = HTTP + шифрование SSL/TLS.
- Flask — микрофреймворк.
@app.route() связывает URL с функцией.
- Конвертеры URL:
string, int, float, path, uuid.
- Postman — тестирование API: коллекции, переменные окружения, HTTP-методы.
- Pydantic —
BaseModel, Field(), @field_validator, JSON-сериализация.
- venv — изолированное окружение.
python -m venv venv.
HTTP и HTTPS
HTTP (HyperText Transfer Protocol) — протокол передачи данных между клиентом и сервером. Работает по схеме «запрос — ответ».
HTTPS (HyperText Transfer Protocol Secure) — тот же HTTP, но с шифрованием через SSL/TLS. Защищает данные от перехвата.
| HTTP | HTTPS |
| Порт 80 | Порт 443 |
| Без шифрования | С шифрованием SSL/TLS |
| Небезопасен | Безопасен |
Flask vs Django
| Flask | Django |
| Микрофреймворк | Полнофункциональный фреймворк |
| Минимум из коробки | ORM, админка, аутентификация из коробки |
| Максимум гибкости | Строгая структура |
| Для микросервисов, API, прототипов | Для больших проектов |
Структура Flask-приложения
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
from flask import Flask — импорт класса Flask.
app = Flask(__name__) — создание приложения.
@app.route('/') — декоратор маршрута.
if __name__ == '__main__': — защита от импорта.
app.run(debug=True) — запуск с автоперезагрузкой.
Конвертеры URL
| Конвертер | Что принимает | Пример |
string | Текст без слешей (по умолчанию) | /hello/anna |
int | Целое положительное число | /double/42 |
float | Дробное число | /square/3.14 |
path | Текст со слешами | /reverse/a/b/c |
uuid | UUID-идентификатор | /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"