Vai al contenuto

Flask – applicazioni web

In quarta avete scritto il primo server Flask, con route, template e un'API JSON. Quest'anno costruiamo un'applicazione web vera, completa e pubblicata online: la Bacheca della classe, dove pubblicare avvisi, compiti ed eventi.

Ogni lezione aggiunge un pezzo allo stesso progetto: template ordinati, form con validazione, un database SQLite, un'API REST, il login con password sicure e infine la messa in produzione. Nell'ultima lezione progettate e realizzate un'applicazione vostra.

Ogni lezione ha il suo kit da scaricare: il progetto già funzionante, con la grafica pronta, che contiene esattamente il codice spiegato. Lo avviate, lo leggete con la lezione accanto e poi fate le missioni, dalla più facile (⭐) alla più impegnativa (⭐⭐⭐). Partite dalla lezione 0.

Questo corso è il laboratorio che accompagna la teoria di Fondamenti del web: lì trovate HTTP, REST e sicurezza spiegati in dettaglio.

Cosa vi serve: Python 3.10 o successivo, Visual Studio Code con l'estensione Thunder Client (o Postman) per provare le API.

  1. 0 Come si lavora con i kit Installare gli strumenti, scaricare il kit di ogni lezione, avviarlo, leggerlo e fare le missioni. Con gli errori più comuni e come risolverli.
  2. 1 Ripasso e struttura del progetto Dalla quarta alla quinta. Ambiente virtuale, cartelle del progetto, route con parametri, url_for, redirect e pagine di errore, sul primo kit della Bacheca.
  3. 2 I template con Jinja2 Pagine HTML con parti dinamiche. Variabili, condizioni, cicli, filtri (anche fatti da voi), ereditarietà da base.html, pezzi riutilizzabili con include e file statici.
  4. 3 Form, validazione e messaggi Pubblicare un annuncio dal browser. GET e POST nella stessa route, controlli lato server, form che ricorda i dati, messaggi flash e il pattern Post/Redirect/Get.
  5. 4 Il database con SQLite Dati che sopravvivono al riavvio. Un database in un file, le funzioni di db.py, SELECT, INSERT e DELETE dalle route, i segnaposto contro la SQL injection e la ricerca con LIKE.
  6. 5 L'API REST La bacheca parla anche con altri programmi. Risorse e metodi HTTP, endpoint JSON per leggere, creare ed eliminare, codici di stato, test con Thunder Client, un client Python e una pagina che si aggiorna da sola con fetch.
  7. 6 Utenti, login e permessi Registrazione con password salvate come hash, login e logout con la sessione, pagine riservate con un decoratore, autorizzazione (solo l'autore elimina) e una chiave per l'API.
  8. 7 Pronti per la produzione Dal PC del laboratorio a un server vero. Segreti nel file .env, debug spento, pagina di errore 500, dipendenze con le versioni, un server WSGI (Waitress) e la pubblicazione su PythonAnywhere.
  9. 8 Progetto finale Progettare, realizzare e pubblicare un'applicazione web completa.

Inizia dalla lezione 0