📝 Вопросы на самопроверку

🎯 Итоговая проверка Flask-блока К оглавлению урока

Ответьте на вопросы самостоятельно, затем проверьте себя в разделе Решения. Эти вопросы повторяют темы лекции Summary session 3.

Блок 1: HTTP и REST

1

Вопрос: HTTP-методы

Для чего нужны HTTP-методы? Перечислите основные методы (GET, POST, PUT, PATCH, DELETE) и укажите, какие из них идемпотентны.

2

Вопрос: Идемпотентность

Что такое идемпотентность? Почему DELETE считается идемпотентным, а POST — нет?

3

Вопрос: API vs веб-приложение

В чём разница между API и веб-приложением? Можете ли привести пример, где одно API используется несколькими приложениями?

4

Вопрос: Принципы RESTful

Назовите 5 ключевых принципов RESTful-архитектуры. Чем RESTful отличается от SOAP?

Блок 2: Flask — конфигурация и маршрутизация

5

Вопрос: Config-классы

Зачем использовать иерархию Config-классов (Config / DevelopmentConfig / TestingConfig)? Как Flask выбирает нужную конфигурацию через переменную окружения?

6

Вопрос: Blueprint

Что такое Blueprint и зачем он нужен? Какие преимущества даёт использование Blueprints в крупном проекте?

7

Вопрос: __init__.py в app/

За что отвечает файл app/__init__.py в проекте Community Pulse? Что такое Application Factory и почему он предпочтительнее прямой инициализации?

Блок 3: Структура проекта

8

Вопрос: Папки проекта

Опишите назначение каждой папки в Community Pulse: routers/, models/, schemas/. Почему разделение на эти три слоя является хорошей практикой?

9

Вопрос: Модульная структура

Назовите 4 преимущества модульной структуры проекта (модульность, поддержка и развитие, масштабируемость, переиспользование).

Блок 4: Flask-SQLAlchemy и миграции

10

Вопрос: Flask-SQLAlchemy

Что такое Flask-SQLAlchemy? Какие преимущества он даёт по сравнению с использованием «чистого» SQLAlchemy?

11

Вопрос: Alembic vs Flask-Migrate

В чём разница между Alembic и Flask-Migrate? Когда вы бы выбрали один над другим?

12

Практика: Команды миграции

Запишите последовательность команд для: 1) инициализации миграций, 2) создания первой миграции, 3) применения к БД, 4) отката.

Блок 5: Эндпоинты и Pydantic

13

Вопрос: Объект request

Перечислите атрибуты объекта request. Чем отличается request.args от request.form? Когда использовать request.get_json()?

14

Вопрос: Контракты

Что такое контракт между бэкендом и фронтендом? Из каких частей состоит контракт? Зачем он нужен?

15

Практика: Pydantic-схема

Напишите Pydantic v2 схему QuestionCreate с полем text (строка, минимум 12 символов) и схему QuestionResponse с полями id и text, поддерживающую создание из ORM-объекта.

16

Итоговый вопрос

Как вы думаете, какие возможности предоставляют Flask, SQLAlchemy и Pydantic вместе? Как можно масштабировать приложение Community Pulse?

✅ Проверить ответы