×

Guida completa a Python

Guida completa a Python

📘 Capitolo 12 – Programmazione Web in Python (con Flask)

1. Cos’è Flask?

Flask è un micro-framework web per Python. È:

  • Leggero e facile da usare
  • Perfetto per progetti piccoli e medi
  • Ottimo per imparare come funzionano web server e API

Con Flask puoi creare un server web in poche righe.

2. Installazione

Apri il terminale e installa Flask:

pip install flask

3. Primo esempio: Hello, Web!

Crea un file chiamato app.py con questo contenuto:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
return "🚀 Benvenuto nella tua prima app Flask!"

if __name__ == "__main__":
app.run(debug=True)

▶️ Come eseguire:

Nel terminale:

python app.py

Vai su http://127.0.0.1:5000 nel tuo browser
Risultato: "🚀 Benvenuto nella tua prima app Flask!"

4. Aggiungere più pagine (routing)

@app.route("/contatti")
def contatti():
return "📧 Contattaci a info@example.com"

Naviga su http://127.0.0.1:5000/contatti

5. Passare parametri via URL

@app.route("/ciao/<nome>")
def saluta(nome):
return f"Ciao, {nome.capitalize()}!"

URL: http://127.0.0.1:5000/ciao/luca
Output: Ciao, Luca!

6. HTML dinamico con render_template()

Struttura cartelle:

arduino

app.py
templates/
home.html

home.html

<!DOCTYPE html>
<html>
<head><title>Home</title></head>
<body>
<h1>Benvenuto, {{ nome }}!</h1>
</body>
</html>

app.py

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def home():
return render_template("home.html", nome="Luca")

🔹 7. Moduli utili con Flask

ModuloA cosa serve
render_template()per HTML dinamico
requestper leggere input da form/URL
redirect, url_forper navigazione e reindirizzamenti

8. Creare una mini API

from flask import jsonify

@app.route("/api/saluto/<nome>")
def api_saluto(nome):
return jsonify({"messaggio": f"Ciao, {nome}!"})

Naviga su: http://localhost:5000/api/saluto/Mario
Output JSON:

jsonCopiaModifica{
  "messaggio": "Ciao, Mario!"
}

Riepilogo

Con Flask puoi:

  • Creare siti web semplici e dinamici
  • Creare API REST per app frontend, mobile, ecc.
  • Lavorare facilmente con HTML, JSON, form, routing…

🧪 Esercizio pratico

  1. Crea una route /quadrato/<numero>
  2. Il server calcola e restituisce numero * numero
  3. Mostra il risultato come JSON (es: { "quadrato": 16 })

Soluzione in Flask

📄 app.py

from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/quadrato/<int:numero>")
def quadrato(numero):
risultato = numero ** 2
return jsonify({"quadrato": risultato})

if __name__ == "__main__":
app.run(debug=True)

▶️ Come usarlo:

Avvia l’app: bash

python app.py

Apri il browser e vai su:

  • http://127.0.0.1:5000/quadrato/4 ➝ jsonCopiaModifica{"quadrato": 16}
  • http://127.0.0.1:5000/quadrato/9 ➝ jsonCopiaModifica{"quadrato": 81}

Cosa hai imparato:

  • Come creare una route con parametri dinamici
  • Come lavorare con i tipi (es: <int:numero>)
  • Come usare jsonify() per risposte API-style

🧪 Esercizio pratico (parte 2)

Aggiungiamo un form HTML alla nostra app Flask per inserire un numero da browser e vedere il quadrato calcolato dinamicamente.

Struttura del progetto

CopiaModificaapp.py
templates/
│
└── quadrato.html

Step 1 – app.py

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route("/", methods=["GET", "POST"])
def quadrato():
risultato = None

if request.method == "POST":
try:
numero = int(request.form["numero"])
risultato = numero ** 2
except ValueError:
risultato = "Errore: inserisci un numero valido."

return render_template("quadrato.html", risultato=risultato)

if __name__ == "__main__":
app.run(debug=True)

Step 2 – templates/quadrato.html

<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>Calcolo Quadrato</title>
</head>
<body>
<h1>🧮 Calcolo del quadrato di un numero</h1>

<form method="POST">
<label for="numero">Inserisci un numero:</label>
<input type="text" id="numero" name="numero" required>
<button type="submit">Calcola</button>
</form>

{% if risultato is not none %}
<h2>📐 Risultato: {{ risultato }}</h2>
{% endif %}
</body>
</html>

▶️ Come testarlo

  1. Crea la cartella templates/ accanto a app.py
  2. Salva lì dentro il file quadrato.html
  3. Avvia Flask:
python app.py

Vai su http://127.0.0.1:5000/

Cosa hai imparato:

  • Come usare un form HTML con Flask
  • Come gestire richieste POST
  • Come passare dati dinamici a un template
  • Come mostrare risultati nella stessa pagina

Pagine: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19