Applicazione in Flask
Per creare la nostra prima applicazione con Flask, dobbiamo innanzitutto aprire un nuovo file Python, chiamato per esempio app.py
, ed inserire al suo interno il seguente codice di base:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def ciao_mondo():
return 'Ciao Mondo’
if __name__ == '__main__':
app.run()
Analizziamo ora nel dettaglio il codice di questa semplice applicazione. Come prima cosa abbiamo ovviamente importato il modulo flask
, più nello specifico la classe Flask
, che è la nostra applicazione WSGI vera e propria.
Il costruttore della classe Flask prende come parametro il nome del modulo corrente, che può essere rappresentato dalla variabile __name__
.
La funzione route()
di Flask è un decoratore che indica all'applicazione quale URL dovrebbe chiamare la funzione associata:
app.route(rule, options)
Il parametro rule
rappresenta l'URL da collegare alla funzione, mentre options
è una lista di parametri che verranno passato all'oggetto Rule
.
Nell'esempio della nostra applicazione, l'URL "/
" è collegato alla funzione ciao_mondo()
. Quindi, quando visiteremo l'indirizzo "/
" sul nostro server (ovvero la home page), verrà renderizzato l'output della funzione ciao_mondo()
.
Infine, il metodo run()
della classe Flask permette di eseguire l'applicazione sul server di sviluppo locale. La sintassi completa del metodo è la seguente:
app.run(host, port, debug, options)
Tutti i parametri sono opzionali, infatti nell'applicazione non abbiamo passato nulla al metodo run()
. Ecco il significato dei vari parametri:
host
: l'hostname su cui viene avviata l'applicazione, di default è impostato a 127.0.0.1 (localhost), ma è possibile impostarlo, per esempio, a 0.0.0.0 per avere l'applicazione disponibile esternamente.port
: imposta di default a 5000, può essere qualsiasi porta disponibile.debug
: parametro booleano impostato di default a false, se impostato a true verranno fornite informazioni di debug.options
: opzioni da inoltrare al server Werkzeug.
Eseguire Applicazione Flask
Ora che abbiamo la nostra applicazione, possiamo eseguire lo script Python dal terminale in questo modo:
python app.py
In console apparirà un messaggio che ci informa del fatto che lo script è ora in esecuzione, dandoci le informazioni relative all'hostname e alla porta per raggiungere il web server.
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Se con il nostro browser navighiamo alla pagina indicata potremmo vedere la scritta "Ciao Mondo" sul nostro schermo.
Modalità di Debug in Flask
Come abbiamo visto, per eseguire un'applicazione Flask dobbiamo chiamare il metodo run(). Tuttavia, in fase di sviluppo, questo renderebbe necessario un riavvio manuale dell'applicazione per ogni piccolo cambiamento.
Per evitare questo inconveniente possiamo abilitare la modalità di debug in cui il server ricaricherà l'applicazione automaticamente ogni volta che apportiamo una modifica al nostro codice. Ci verranno inoltre mostrate varie informazioni utili a debuggare eventuali errori dell'applicazione.
La modalità di debug può essere abilitata impostando la proprietà debug dell'applicazione a True prima di eseguire il metodo run():
app.debug = True
app.run()
Oppure impostando il parametro debug a True direttamente all'interno del metodo, come abbiamo visto in precedenza durante l'analisi dei parametri:
app.run(debug = True)