In questa lezione impari a
- preparare il PC (Python, VS Code, Thunder Client)
- scaricare, estrarre e avviare un kit
- capire come sono organizzate le lezioni e le missioni
- riconoscere e risolvere gli errori più comuni
In questo corso costruiamo un'applicazione web vera: la Bacheca della classe, dove pubblicare avvisi, compiti ed eventi. Alla fine avrà un database, gli utenti con il login, un'API e sarà pronta per andare online.
Non si parte mai dal foglio bianco: ogni lezione ha il suo kit, un progetto già funzionante e con la grafica pronta, che contiene esattamente il codice spiegato nella lezione.
Il metodo, lezione per lezione
1. SCARICA il kit → uno zip, da estrarre in una cartella vostra
2. AVVIA e GUARDA → cosa fa l'applicazione nel browser?
3. LEGGI il codice → con la spiegazione della lezione accanto
4. FAI le MISSIONI → piccole modifiche, da ⭐ a ⭐⭐⭐
5. CONFRONTA → il kit della lezione dopo parte da qui
Le missioni hanno tre livelli:
| Livello | Per chi | Cosa chiede |
|---|---|---|
| ⭐ | tutti | ripetere quello che c'è nel kit, cambiando poco |
| ⭐⭐ | chi ha capito | combinare due cose viste nella lezione |
| ⭐⭐⭐ | chi vuole spingersi oltre | qualcosa di nuovo, con un aiutino |
Non serve finire tutte le missioni per andare avanti: la lezione successiva ha il suo kit nuovo, che riparte già funzionante. Chi resta indietro non resta bloccato.
Preparare il PC
Servono tre cose (nei PC del laboratorio ci sono già):
- Python 3.10 o successivo. Durante l'installazione su Windows spuntate Add python.exe to PATH. Per controllare: nel terminale
python --version. - Visual Studio Code, con l'estensione Python di Microsoft.
- L'estensione Thunder Client di VS Code (dalla lezione 5, per provare le API).
Utili ma non obbligatori: l'estensione SQLite Viewer (dalla lezione 4, per guardare dentro il database).
Avviare un kit
- Scaricate lo zip ed estraetelo (tasto destro → Estrai tutto). Non lavorate dentro lo zip: i file sembrano aperti, ma le modifiche non si salvano.
- In VS Code: File → Apri cartella… e scegliete la cartella del kit. A sinistra dovete vedere subito
app.py. - Aprite il terminale (Terminale → Nuovo terminale) e installate le librerie:
pip install -r requirements.txt
- Avviate l'applicazione:
python app.py
- Aprite il browser su
http://127.0.0.1:5000. Per fermare il server: Ctrl + C nel terminale.
requirements.txtè l'elenco delle librerie di cui il progetto ha bisogno. Il comandopip install -rle installa tutte in un colpo solo.
E l'ambiente virtuale?
Nei progetti veri si usa un ambiente virtuale: una cartella .venv con una copia di Python solo per quel progetto, così progetti diversi non si "pestano i piedi" con versioni diverse delle stesse librerie. Lo vediamo nella lezione 1. Per le prime prove in laboratorio potete anche farne a meno.
Gli errori più comuni
| Errore | Causa | Soluzione |
|---|---|---|
ModuleNotFoundError: No module named 'flask' |
librerie non installate | pip install -r requirements.txt |
'pip' non è riconosciuto… |
Python non è nel PATH | usate py -m pip install -r requirements.txt e py app.py |
can't open file 'app.py' |
il terminale è nella cartella sbagliata | aprite in VS Code la cartella del kit, non quella sopra |
Address already in use |
c'è già un server acceso | chiudete l'altro terminale (Ctrl + C) |
TemplateNotFound: index.html |
la cartella templates ha un nome sbagliato o è nel posto sbagliato |
deve chiamarsi templates ed essere accanto ad app.py |
| Il CSS modificato non cambia | il browser usa la copia vecchia | Ctrl + F5 |
jinja2…UndefinedError |
nel template usate una variabile che non avete passato | controllate i nomi in render_template(...) |
Leggete l'errore dal fondo. Quando Python si ferma stampa una lunga lista (il traceback): l'ultima riga dice cosa è successo, la riga con
app.pypiù in basso dice dove. Condebug=Truelo stesso traceback compare anche nel browser.
Cosa trovate in ogni kit
| File | Contenuto |
|---|---|
app.py |
il server: route e logica, commentato |
templates/ |
le pagine HTML con Jinja2 |
static/css/style.css |
la grafica: non serve toccarla (ma potete!) |
requirements.txt |
le librerie da installare |
COME-AVVIARE.txt |
i passi di questa pagina, in breve |
MISSIONI.txt |
le missioni della lezione |
Dalla lezione 4 arrivano anche db.py e schema.sql (il database), dalla 7 .env.esempio (le impostazioni segrete).
⭐ Missione 0 – Pronti, partenza
Scaricate il kit della lezione 1, avviatelo e aprite la bacheca nel browser. Poi fate apposta tre errori e leggete cosa succede: rinominate templates in template, cancellate i due punti alla fine di una riga def, scrivete annunci2 al posto di annunci in una route. Per ognuno annotate cosa dice l'errore e in quale riga. Infine rimettete tutto a posto.