Introduzione a Flask

Flask è un popolare framework Python per lo sviluppo di applicazioni web. Viene fornito con funzionalità e requisiti minimi incorporati, rendendo semplice l'avvio e flessibile l'utilizzo.

Grazie a Flask hai la libertà di personalizzare la maggior parte degli aspetti dell'applicazione, tra cui l'integrazione del database, gli account e l'autenticazione.

Oggetto App Flask

Il modulo Python Flask contiene tutte le classi e le funzioni necessarie per la costruzione di una web app.

La classe Flask può essere importata per creare l'oggetto principale dell'applicazione e prende il nome dell'applicazione come argomento.

# Importazione della classe Flask
from flask import Flask

# Creazione dell'oggetto Flask
app = Flask(__name__)

Se hai dimestichezza con con una CLI (Command Line Interface) come la Bash, ad esempio, un'app creata con Flask può essere eseguita creando la variabile d'ambiente FLASK_APP ed eseguendo Flask nel terminale. $export FLASK_APP=app.py $flask run . Se invece non sai nulla di CLI ti consiglio il video sul canale YouTube di tuttofaredigitale "Interfaccia a riga di comando".

Il percorso

Il percorso, route per definizione, con Flask può essere creato definendo una funzione di visualizzazione e associandovi un URL utilizzando il decorator route().

I percorsi specificano come l'applicazione Flask gestisce le richieste che riceve, come ad esempio cosa visualizzare sulla pagina web ad un specificato URL.

@app.route("/")
def hello_world():
  return "Benvenuto viaggiatore!"
#Output: il testo è visualizzato al percorso URL "/"

In una web app crata con Python e Flask, l'HTML può essere restituito da una funzione per essere visualizzato su una pagina web. L'HTML può essere restituito come stringa.

@app.route('/')
def benvenuto():
   return "Benvenuto!"
# Il testo "benvenuto" è visualizzato come h1 nell'URL con percorso "/"

Flask può adattarsi agli URL dinamici. Le sezioni variabili di un URL possono essere indicate da parentesi angolari e da un convertitore opzionale: <convertitore: nome_variabile>. Queste parti variabili saranno poi passate alla funzione di visualizzazione come argomenti.

# Risposta a "/pagina/1", "/pagina/2", etc
@app.route("/pagina/")
def content(pag_num):
   return f"Pagina numero {pag_num}"

Esempio:

from flask import Flask
app = Flask(__name__)

@app.route("/")
@app.route("/home")
def home():
   return "<h1>Benvenuto!</h1>"

@app.route ("/agente/ <int:agente_id>")
def agente(agente_id):
   return f"""
   <h2>Agente {agente_id} Profilo</h2>
   <a href="/">Ritorna alla pagina principale</a>
   """

@app.route ("/rapporto/ <rapporto_titolo>")
def rapporto(rapporto_titolo):
   return f"""
   <h2>{rapporto_titolo.replace ("-", " ").title()}</h2>
    <a href="/">Ritorna alla pagina principale</a>
   """