Esercizio: Creare un'app

Completato

L'applicazione verrà creata in modo iterativo, concentrandosi su concetti specifici man mano che si procede. Per iniziare, verrà creata la pagina di destinazione dell'applicazione in cui verrà visualizzato il modulo usato dall'utente.

In genere, il punto di ingresso per le applicazioni Flask è un file denominato app.py. Verrà seguita questa convenzione e verrà creata la parte principale dell'applicazione. Verranno eseguite le operazioni seguenti:

  1. Creazione dell'applicazione principale
  2. Aggiunta della route per l'applicazione
  3. Creazione del modello HTML per il sito
  4. Testare l'applicazione

Creare l'applicazione principale

  1. Tornare all'istanza di Visual Studio Code usata in precedenza e creare un nuovo file denominato app.py facendo clic su Nuovo file nella scheda Explorer

    Screenshot che mostra la finestra di dialogo Nuovo file di Visual Studio Code.

    Importante

    Se Visual Studio Code viene usato per la prima volta in questo esercizio per creare un'applicazione Python, verranno visualizzati messaggi sull'installazione dell'estensione Python e del linter pylint. Selezionare Installa per installare ognuno di questi componenti aggiuntivi.

  2. Aggiungere il codice per creare l'applicazione Flask

    from flask import Flask, redirect, url_for, request, render_template, session
    
    app = Flask(__name__)
    

L'istruzione di importazione include riferimenti a Flask, che è il componente principale di qualsiasi applicazione Flask. Si userà render_template a breve, quando si vuole restituire il codice HTML.

app sarà l'applicazione principale. Verrà usata durante la registrazione delle route nel passaggio successivo.

Aggiungere la route

L'applicazione userà una sola route - /. Questa route viene a volte chiamata route predefinita o route indice poiché si tratta della route che verrà usata se l'utente non specifica nulla oltre al nome del dominio o del server.

Aggiungere il codice seguente alla fine del file app.py

@app.route('/', methods=['GET'])
def index():
    return render_template('index.html')

Usando @app.route si indica la route che si vuole creare. Il percorso sarà /, ovvero la route predefinita. Si specifica che la route verrà usata per GET. Se viene ricevuta una richiesta GET per /, Flask chiamerà automaticamente la funzione dichiarata immediatamente sotto l'elemento Decorator, in questo caso index. Nel corpo di index si indica che verrà restituito un modello HTML denominato index.html all'utente.

Creare il modello HTML per il modulo

Jinja, il motore di creazione di modelli per Flask, è incentrato principalmente sul codice HTML. Di conseguenza, è possibile usare tutte le competenze e gli strumenti HTML esistenti già disponibili. Bootstrap verrà usato per definire il layout della pagina, per renderla più accattivante. Con Bootstrap, verranno usate diverse classi CSS nel codice HTML. Se non si ha familiarità con Bootstrap, è possibile ignorare le classi e concentrarsi sul codice HTML (che è effettivamente la parte importante).

Importante

HTML (HyperText Markup Language) è un linguaggio di markup standard usato per creare pagine Web. HTML è costituito da una serie di tag e attributi per creare intestazioni, paragrafi, elenchi, immagini, collegamenti e altri elementi che costituiscono una pagina Web. Quando un utente richiede una pagina Web, il browser legge il codice HTML e lo esegue come pagina Web visiva con cui l'utente può interagire. Per altre informazioni su HTML, vedere Nozioni di base su HTML.

È necessario creare modelli per Flask in una cartella adatta denominata templates. Creare la cartella e il file necessario e aggiungere il codice HTML.

  1. Creare una nuova cartella denominata templates selezionando Nuova cartella nello strumento Explorer in Visual Studio Code

  2. Selezionare la cartella templates creata e selezionare Nuovo file per aggiungere un file alla cartella

  3. Denominare il file index.html

  4. Aggiungere il codice HTML seguente

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
        <title>Translator</title>
    </head>
    <body>
        <div class="container">
            <h1>Translation service</h1>
            <div>Enter the text you wish to translate, choose the language, and click Translate!</div>
            <div>
                <form method="POST">
                    <div class="form-group">
                        <textarea name="text" cols="20" rows="10" class="form-control"></textarea>
                    </div>
                    <div class="form-group">
                        <label for="language">Language:</label>
                        <select name="language" class="form-control">
                            <option value="en">English</option>
                            <option value="it">Italian</option>
                            <option value="ja">Japanese</option>
                            <option value="ru">Russian</option>
                            <option value="de">German</option>
                        </select>
                    </div>
                    <div>
                        <button type="submit" class="btn btn-success">Translate!</button>
                    </div>
                </form>
            </div>
        </div>
    </body>
    </html>
    

I componenti principali del codice HTML precedente sono i componenti textarea per il testo che l'utente vuole tradurre e l'elenco a discesa (select) che verrà usato dall'utente per indicare la lingua di destinazione. Per aggiungere altre lingue, è possibile consultare l'elenco delle lingue supportate per altre opzioni. Impostare l'attributo value sul codice della lingua, ad esempio pl per il polacco.

Testare l'applicazione

Dopo aver creato il sito iniziale, è possibile eseguirne il test. Per semplicità, verrà usato il terminale integrato all'interno di Visual Studio Code.

  1. Aprire il terminale integrato selezionando CTRL- o Cmd- in Mac

  2. Eseguire il comando seguente per impostare il runtime Flask sullo sviluppo: il server verrà ricaricato automaticamente a ogni modifica

    # Windows
    set FLASK_ENV=development
    
    # Linux/macOS
    export FLASK_ENV=development
    
  3. Eseguire l'applicazione!

    flask run
    
  4. Aprire l'applicazione in un browser passando a http://localhost:5000

Verrà visualizzato il modulo. Complimenti.

Verificare le conoscenze

1.

Qual è il numero di porta predefinito usato da Flask per gestire le richieste HTTP?

2.

In quale sottodirectory devono essere archiviati i file modello Jinja per impostazione predefinita?