Wednesday 16 January 2019

Hello World esempio di Flask

Installazione di Flask

Flask è scritto in Python, quindi per installarlo occorre appoggiarsi ad un repository ed usare lo script "pip" come in questo esempio.

$ pip install <package-name>

Un problema comune con l'installazione di packages Python e la manutenzione di diversi packages per diverse applicazioni.

Python utilizza il concetto di ambienti virtuali. Un ambiente virtuale è una copia completa dell'interprete Python. Quando si installano i pacchetti in un ambiente virtuale, l'interprete Python dell'intero sistema non è interessato, solo la copia lo è. Quindi la soluzione per avere la completa libertà di installare qualsiasi versione dei pacchetti per ogni applicazione consiste nell'utilizzare un diverso ambiente virtuale per ogni applicazione. Gli ambienti virtuali hanno l'ulteriore vantaggio di essere di proprietà dell'utente che li ha creati, quindi non richiedono un account amministratore.

Iniziamo creando una directory per il progetto che andremo ad usare:
$ mkdir microblog
$ cd microblog

Se state usando Python 3, il supporto per il  virtual environment support è built-in quindi sarà necessario soltanto:
$ python3 -m venv venv
 
 
Con questo comando, sto chiedendo a Python di eseguire il pacchetto venv, che crea un ambiente virtuale denominato venv. Il primo venv nel comando è il nome del pacchetto di ambiente virtuale Python, mentre il secondo è il nome dell'ambiente virtuale che userò per questo particolare ambiente.
Una volta completato il comando, verrà visualizzata una directory denominata venv in cui sono archiviati i file dell'ambiente virtuale.

Una volta installato virtualenv, possiamo creare un ambiente virtuale con il seguente comando:

$ virtualenv venv

Il passo successivo sarà di attivare l'ambiente virtuale, con il seguente comando:

$ source venv/bin/activate (venv) $ _

Avendo l'ambiente virtuale creato ed attivo, possiamo finalmente installare Flask!

(venv) $ pip install flask

Puoi verificare che l'installazione di Flask è funzionante aggiugendo il seguente import all'interprete Python:
>>> import flask
>>> _

Una applicatione "Hello, World" in Flask

Questa semplice applicazione che andremo a creare verra inserita in un  package. In Python, una sotto-directory che include il file __init__.py è considerata un package.
Creiamo quindi un package app, per la nostra applicazione con il seguente comando:
(venv) $ mkdir app
All'interno del file __init__.py del package app includeremo il seguente codice:

from flask import Flask

app = Flask(__name__)

from app import routes

Questo script crea semplicemente l'oggetto app  come un'istanza della classe Flask importata dal pacchetto flask. La variabile __name__ passata alla classe Flask è una variabile predefinita Python, che viene impostata sul nome del modulo in cui viene utilizzata.

L'applicazione quindi importa il modulo routes, che non abbiamo ancora aggiunto.

Quindi cosa metteremo nel modulo routes ? Semplicemente i percorsi REST implementati dall'applicazione. In Flask, i gestori per i percorsi dell'applicazione sono a loro volta funzioni Python, chiamate funzioni di visualizzazione. Le funzioni di visualizzazione sono mappate su uno o più URL di percorso in modo che Flask sappia quale logica eseguire quando un client richiede un determinato URL.

Ecco la tua prima funzione di visualizzazione, che devi scrivere nel nuovo modulo chiamato app / routes.py:

from app import app

@app.route('/')
@app.route('/index')
def index():
    return "Hello, World!"
 

Questa funzione di visualizzazione è in realtà piuttosto semplice, restituisce semplicemente un "Hello World" come una stringa. Le due strane linee @ app.route sopra la funzione sono chiamati decoratori: un decoratore modifica la funzione che lo segue. Un modello comune con i decoratori è di utilizzarli per registrare le funzioni come callback per determinati eventi. In questo caso, il decoratore @ app.route crea un'associazione tra l'URL fornito come argomento e la funzione.

In questo esempio ci sono due decoratori, che associano gli URL / e / index a questa funzione. Ciò significa che quando un browser Web richiede uno di questi due URL, Flask invocherà questa funzione e passerà il suo valore di ritorno al browser come risposta. Se questo non ha ancora senso, lo sarà tra un pò quando eseguirai questa applicazione.

Per completare l'applicazione, è necessario disporre di uno script Python al livello più alto che definisca l'istanza dell'applicazione Flask. Chiamiamo questo script microblog.py e definiamolo come una singola riga che importa l'istanza dell'applicazione:

from app import app




La prima applicazione è pronta! prima di eseguirla occorre impostare la FLASK_APP environment variable:
(venv) $ export FLASK_APP=microblog.py

Provata ad aprire il browser a questo indirizzo per verificare:
    http://localhost:5000/
 
Se avete completato tutti gli step indicati dovreste vedere quanto segue:

No comments:

Post a Comment