Titolo del modulo: dgt_wrk09 – Gli Accolli (Easter Egg)
Descrizione:
“dgt_wrk09 – Gli Accolli (Easter Egg)” tratta l’uso di Flask, un framework web Python, per realizzare progetti di gestione degli “Accogli” (strutture di accoglienza o rifugi). È rivolto a chi realizza applicazioni che gestiscono i dati e le interazioni con gli utenti in contesti come ostelli, rifugi o qualsiasi servizio di accoglienza.
Fedeli all’approccio dell’Academy, qui non si digita Python a mano. Imparerete come funzionano il routing di Flask, i template, i modelli SQLAlchemy, le sessioni e le API REST; poi descriverete l’applicazione alla macchina funzionalità per funzionalità (“una pagina che elenca i posti letto disponibili, modificabile solo dal personale autenticato”) e revisionerete ciò che scrive: le route, i modelli, i controlli di autenticazione. La eseguirete, proverete a romperla e chiederete correzioni finché l’app non si comporterà come specificato.
Obiettivi del modulo:
- Comprendere le basi di Flask: Comprendere le funzionalità principali di Flask, tra cui routing, template, form e sessioni.
- Integrazione con i database: Imparare come si integrano i database con SQLAlchemy per gestire dati complessi sulle strutture di accoglienza, e come controllare i modelli proposti dalla macchina.
- Autenticazione degli utenti: Comprendere l’autenticazione sicura abbastanza bene da specificarla con precisione e verificare che solo gli utenti autorizzati possano accedere alle funzionalità protette.
- Sviluppo di API RESTful: Progettare API RESTful che colleghino front-end e back-end, farle implementare alla macchina e testare che ogni endpoint si comporti come previsto.
- Visualizzazione dei dati: Guidare la macchina nell’uso di strumenti come Chart.js o Plotly per creare visualizzazioni dei dati sulle strutture di accoglienza.
- Best practice di sicurezza: Comprendere le misure di sicurezza che proteggono i dati degli utenti e l’integrità dell’applicazione, e revisionare il codice della macchina alla loro luce.
Contenuti del modulo:
- Introduzione a Flask
- Far preparare alla macchina l’ambiente di sviluppo, e capire cosa ha installato
-
Concetti di base: route, view e template
-
Costruire un’applicazione CRUD
- Specificare come vengono creati, letti, aggiornati ed eliminati i record delle strutture di accoglienza, e verificarne il risultato
-
Integrazione con i database tramite SQLAlchemy
-
Gestione degli utenti
- Descrivere registrazione e login degli utenti, e revisionare come la macchina li implementa
-
Gestione di sessioni e cookie per l’autenticazione
-
Sviluppo di API RESTful
- Progettare gli endpoint delle API per le operazioni CRUD
-
Gestione dei metodi HTTP e dei codici di stato
-
Migliorare l’esperienza utente
- Validazione dei form e gestione degli errori
-
Uso di AJAX per aggiornamenti asincroni dei dati
-
Visualizzazione dei dati
- Integrare Chart.js o Plotly per mostrare le statistiche sulle strutture di accoglienza
-
Creare dashboard dinamiche
-
Sicurezza nelle applicazioni Flask
- Protezione dalle vulnerabilità web più comuni, e come individuarle nel codice generato
-
HTTPS e cookie sicuri
-
Strategie di deploy
- Preparare l’applicazione per la produzione
- Istruire la macchina per il deploy su piattaforme come Heroku, AWS o DigitalOcean, e verificare il deploy
Destinatari:
- Sviluppatori Python di livello principiante o intermedio interessati allo sviluppo web.
- Persone che lavorano nel settore dell’accoglienza e desiderano soluzioni personalizzate.
- Sviluppatori che vogliono migliorare nella realizzazione di applicazioni web scalabili e sicure guidando la macchina e revisionandone il codice.
Prerequisiti:
- Conoscenza di base di Python, sufficiente per leggere il codice scritto dalla macchina
- La familiarità con HTML, CSS e JavaScript è utile ma non obbligatoria
Al termine di questo modulo, i partecipanti avranno le conoscenze necessarie per descrivere, guidare e verificare applicazioni Flask per la gestione delle strutture di accoglienza.
Gli studenti possono caricare i propri esercizi nel Progetto Git dell’Academy DevOps & SRE. Per questo modulo, create una cartella con il vostro username come nome nella seguente sottocartella: https://github.com/Garanti-Del-Talento/gdt_academy
