Exercício – Criar uma aplicação

Concluído

Vamos criar a nossa aplicação de forma iterativa e concentrar-nos nos conceitos específicos à medida que avançamos. Para começar, vamos criar uma página de destino para a nossa aplicação, que vai apresentar o formulário que o utilizador vai utilizar.

Normalmente, o ponto de entrada para aplicações Flask é o ficheiro com o nome app.py. Vamos seguir esta convenção e criar o núcleo da aplicação. Vamos realizar os seguintes passos:

  1. Criar a aplicação nuclear
  2. Adicionar a rota para a nossa aplicação
  3. Criar um modelo HTML para o site
  4. Testar a aplicação

Criar a aplicação nuclear

  1. Vamos regressar à instância do Visual Studio Code que utilizamos anteriormente e criar um novo ficheiro com o nome app.py ao clicar em Novo ficheiro no separador Explorador

    Screenshot showing the Visual Studio Code New File dialog.

    Importante

    Se, neste exercício, for a primeira vez que utiliza o Visual Studio Code para criar uma aplicação Python, receberá mensagens sobre a instalação da extensão do Python e o linter pylint. Selecione Instalar para instalar cada um destes suplementos.

  2. Adicione o código para criar a aplicação Flask

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

A instrução importação inclui referências a Flask, que é o núcleo de qualquer aplicação Flask. Vamos utilizar render_template daqui a pouco, quando quisermos regressar ao nosso HTML.

app será a aplicação nuclear. Vamos utilizá-la ao registar as nossas rotas no passo seguinte.

Adicionar a rota

A aplicação vai utilizar uma rota – /. Esta rota é por vezes denominada rota padrão ou de índice, dado que se tratará da rota utilizada se o utilizador não indicar nada para além do nome de domínio ou servidor.

Adicione o seguinte código no final de app.py

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

Com @app.route, indicamos a rota que queremos criar. O caminho será /, que é a rota padrão. Indicamos que esta rota será utilizada para GET. Se um pedido GET chegar para /, o Flask chamará automaticamente a função declarada imediatamente abaixo do decorador, index no nosso caso. No corpo de index, indicamos que vamos devolver um modelo HTML com o nome index.html ao utilizador.

Criar um modelo HTML para o formulário

O Jinja, o motor de modelagem do Flask, concentra-se profundamente no HTML. Como resultado, podemos utilizar todas as competências e ferramentas HTML que já possuímos. Vamos utilizar o Programa de arranque do sistema para dispor a página e para a tornar mais agradável. Ao utilizar o Programa de arranque do sistema, vamos utilizar diferentes classes CSS no nosso HTML. Se não estiver familiarizado com o Programa de arranque do sistema, poderá ignorar as classes e focar-se no HTML (que é realmente a parte importante).

Importante

HTML (Hypertext Markup Language) é uma linguagem de marcação padrão usada para criar páginas web. HTML consiste em uma série de tags e atributos para criar títulos, parágrafos, listas, imagens, links e outros elementos que compõem uma página da Web. Quando um usuário solicita uma página da Web, seu navegador lê o código HTML e o processa como uma página da Web visual com a qual o usuário pode interagir. Para saber mais sobre HTML, consulte Noções básicas de HTML.

Os modelos do Flask devem ser criados numa pasta chamada modelos, o que é apropriado. Vamos criar a pasta, o ficheiro necessário e adicionar o HTML.

  1. Crie uma nova pasta com o nome modelos ao selecionar Nova Pasta na ferramenta Explorador do Visual Studio Code

  2. Selecione a pasta modelos que criou e selecione Novo Ficheiro para adicionar um ficheiro à pasta

  3. Dê o nome index.html ao ficheiro

  4. Adicione o seguinte HTML

    <!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>
    

Os componentes essenciais no HTML acima são as textarea do texto que o utilizador quer traduzir e a lista pendente (select), que o utilizador vai utilizar para indicar o idioma de destino. Se quiser adicionar mais idiomas, poderá consultar a lista de idiomas suportados para ver outras opções. Defina o atributo value como o código de idioma, por exemplo pl para Polaco.

Testar a aplicação

Com o site inicial criado, é o momento de o testar! Vamos utilizar o terminal integrado dentro do Visual Studio Code para tornar as nossas vidas um pouco mais fáceis.

  1. Abra o terminal integrado selecionando Ctrl-' ou Cmd-' num Mac

  2. Execute o seguinte comando para definir o runtime do Flask para programação, o que significa que o servidor será recarregado automaticamente a cada alteração

    # Windows
    set FLASK_ENV=development
    
    # Linux/macOS
    export FLASK_ENV=development
    
  3. Execute o aplicativo!

    flask run
    
  4. Abra a aplicação num browser ao navegar para http://localhost:5000

Deverá ver o formulário apresentado! Parabéns!

Verifique o seu conhecimento

1.

Qual é o número de porta predefinido que o Flask utiliza para pedidos HTTP de serviço?

2.

Em que subdiretório devem os ficheiros de modelo do Jinja ser armazenados por predefinição?