Edocti
Advanced Technical Training for the Software Engineer of Tomorrow
Edocti Training

Essential Flask Development with Docker

Intermediate
14 h
4.6 (328 reviews)

Scheduled sessions

No sessions are available at the moment.
Essential Flask Development with Docker

Flask + Docker workshop: Build and containerize a full-fledged web application from scratch in 2 intensive days.

Get hands-on practice building Flask routes, rendering templates, handling forms, and securely integrating databases.

Learn to containerize services with Docker and architect robust multi-container setups using Docker Compose.

Gain practical experience: Spend ~70% of the course in practical labs, actively deploying and troubleshooting Docker containers.

How this helps: Rapidly bootstrap production-ready Python web applications perfectly encapsulated in containers.

Who it’s for: Developers with basic Python knowledge transitioning into backend web development and DevOps.

The course also includes optional modules on scaling patterns, CI/CD pipelines, and cloud deployments.

Skills You Will Learn

Flask Web Framework Docker Containerization Docker Compose SQLAlchemy ORM REST API Development JWT Authentication Celery & Redis CI/CD Integration

Curriculum

Day 1 – Foundations & project scaffolding

  • Flask design choices: WSGI, request/response cycle, Blueprints, Jinja2 vs. API‑only
  • Repository layout (src/), config via environment variables, .env handling; secrets basics
  • App factory pattern; Blueprints for modularity; CLI with flask CLI
  • Templates, static files, WTForms (optional) and CSRF protection
  • REST endpoints and OpenAPI (apispec/flasgger) — request validation (pydantic or marshmallow)
  • Docker multi‑stage image; Compose for dev (hot reload) vs. prod
  • Hands‑on lab: scaffold project, run in Docker, add a minimal page + JSON API

Day 1 – Data layer & auth

  • SQLAlchemy ORM & session patterns; models, relationships, migrations with Alembic
  • JWT authentication (access/refresh), sessions vs. tokens; password hashing
  • CORS and CSRF — when and how; role‑based access (brief)
  • Hands‑on lab: add models/migrations, auth endpoints, seed data

Day 2 – Operations, performance & async workloads

  • Gunicorn process model; workers/threads; timeouts and keep‑alive; Nginx reverse proxy (optional)
  • Caching (Flask‑Caching with Redis); idempotent endpoints and pagination
  • Background jobs with Celery + Redis; retries, time limits, result backends
  • WebSockets with Flask‑Sock (optional) and server‑sent events (SSE)
  • Observability: structured logging, request IDs, basic metrics; health and readiness endpoints
  • Hands‑on lab: containerize prod image, add Celery worker/beat, add caching to a slow endpoint

Day 2 – Quality, testing & CI

  • pytest fixtures for app, DB and client; factory_boy/Faker for data
  • Integration tests in Docker Compose; coverage and parallel runs
  • Pre‑commit hooks (ruff/black); type checks (mypy, optional)
  • CI outline (GitHub Actions): build, test, push image; .env and secrets handling
  • Wrap‑up: deployment options (container registry, ECS/Kubernetes), next steps

Optional modules

Optional – API gateways & auth providers

  • OAuth2/OIDC with external providers (Auth0/Keycloak)
  • Rate limiting and API keys (Flask‑Limiter)

Course Day Structure

  • Part 1: 09:00–10:30
  • Break: 10:30–10:45
  • Part 2: 10:45–12:15
  • Lunch break: 12:15–13:15
  • Part 3: 13:15–15:15
  • Break: 15:15–15:30
  • Part 4: 15:30–17:30

Did you attend this course?

Your feedback is invaluable to us. Please share your experience with us and help us improve this course for future participants.

Share your feedback

Want to find out more? We are here to help!

Or email us directly at training@edocti.com.