Урок 09. Работа над проектом: Community Pulse

📁 Блок: Flask ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#flask #blueprints #rest-api #flask-sqlalchemy #pydantic #routing #http-methods

⚡ Кратко: сборка Flask-приложения

Community Pulse — RESTful API на Flask для опросов. Анонимные пользователи создают вопросы и голосуют: «согласен» / «не согласен».

  • Стек: Flask 3.x, Flask-SQLAlchemy, Alembic, Pydantic
  • Blueprints: модули questions_bp и responses_bp — разделяют маршруты по ответственности
  • Application factory: create_app() в app/__init__.py — инициализирует расширения и регистрирует blueprints
  • Config: классы Config / DevelopmentConfig / ProductionConfig — переключение через переменную окружения
  • HTTP методы: GET/POST/PUT/DELETE = Read/Create/Update/Delete (CRUD)
  • RESTful: ресурсы доступны по URL; каждый запрос самодостаточен (stateless)

Топ-3 ошибки: 1) Забыть db.session.commit(). 2) Зарегистрировать Blueprint без url_prefix. 3) Инициализировать SQLAlchemy(app) в модуле напрямую вместо init_app().

📖 О чём этот урок

Урок 09 посвящён сборке полноценного Flask-приложения с нуля: от проектирования структуры до написания рабочих REST-эндпоинтов. В основе — учебный проект Community Pulse: платформа для анонимного голосования по общественно значимым вопросам.

Что изучим

  • HTTP-методы (GET, POST, PUT, PATCH, DELETE) и идемпотентность
  • Принципы REST и RESTful-архитектуры
  • Конфигурация Flask: классы Config, загрузка из переменной окружения
  • Роутинг: декоратор @app.route, переменные маршрута, конвертеры типов
  • Blueprints — организация приложения по модулям
  • Application Factory Pattern: create_app()
  • Flask-SQLAlchemy: интеграция с приложением через init_app()
  • Pydantic: контракты для входных/выходных данных

📚 Что повторить перед изучением

🎯 Что изучать дальше