Edocti Training
Essential Flask Development in Docker
Sesiuni programate
Nu există sesiuni disponibile în acest moment.
Abilități dobândite
Framework-ul Flask
Containerizare Docker
Docker Compose
SQLAlchemy ORM
Dezvoltare REST API
Autentificare JWT
Celery & Redis
Integrare CI/CD
Curriculum
Ziua 1 – Fundamente & scaffolding proiect
- Alegerile de design Flask: WSGI, request/response cycle, Blueprints, Jinja2 vs. API‑only
- Structură repo (src/), config prin environment variables, .env; noțiuni de secrets
- App factory pattern; Blueprints pentru modularitate; CLI cu flask CLI
- Templates, fișiere statice, WTForms (opțional) și protecție CSRF
- REST endpoints și OpenAPI (apispec/flasgger) — validare request (pydantic sau marshmallow)
- Docker multi‑stage image; Compose pentru dev (hot reload) vs. prod
- Lab: scaffold proiect, rulează în Docker, adaugă o pagină minimă + JSON API
Ziua 1 – Strat de date & autentificare
- SQLAlchemy ORM & session patterns; modele, relații, migrații cu Alembic
- Autentificare JWT (access/refresh), sesiuni vs. tokens; password hashing
- CORS și CSRF — când și cum; access pe roluri (pe scurt)
- Lab: adaugă modele/migrații, endpoints de auth, seed data
Ziua 2 – Operațional, performanță & workloaduri async
- Modelul de proces Gunicorn; workers/threads; timeouts și keep‑alive; Nginx reverse proxy (opțional)
- Caching (Flask‑Caching cu Redis); endpoints idempotente și pagination
- Joburi în fundal cu Celery + Redis; retries, time limits, result backends
- WebSockets cu Flask‑Sock (opțional) și server‑sent events (SSE)
- Observability: structured logging, request IDs, metrics de bază; health și readiness endpoints
- Lab: imagine prod containerizată, adaugă Celery worker/beat, cache pe un endpoint lent
Ziua 2 – Calitate, testare & CI
- pytest fixtures pentru app, DB și client; factory_boy/Faker pentru date
- Teste de integrare în Docker Compose; coverage și rulări paralele
- Pre‑commit (ruff/black); verificări de tip (mypy, opțional)
- Schiță CI (GitHub Actions): build, test, push image; .env și gestionare de secrets
- Wrap‑up: opțiuni de deployment (container registry, ECS/Kubernetes), next steps
Module opționale
Opțional – API gateways & provideri de auth
- OAuth2/OIDC cu provideri externi (Auth0/Keycloak)
- Rate limiting și API keys (Flask‑Limiter)
Structura zilei de curs
- Partea 1: 09:00–10:30
- Pauză: 10:30–10:45
- Partea 2: 10:45–12:15
- Pauză de prânz: 12:15–13:15
- Partea 3: 13:15–15:15
- Pauză: 15:15–15:30
- Partea 4: 15:30–17:30