Conceitos básicos do Flask

Concluído

O Flask é uma "microestrutura" open-source da Web. Quando os criadores usam o termo "microestrutura", significa que a estrutura realizará as tarefas necessárias de uma estrutura da Web, mas não inclui recursos avançados ou outros requisitos específicos que seu aplicativo deverá seguir para funcionar corretamente. Essa abordagem permite que o Flask seja extremamente flexível e ideal para uso como front-end para back-ends ou APIs existentes, como os serviços de IA do Azure.

Ao criar um aplicativo Web com qualquer estrutura, há alguns conceitos principais que precisamos entender: roteamento, métodos e modelagem. Vamos explorar esses conceitos antes de escrevermos o código.

Responder às solicitações de usuário com rotas

Quando um usuário usa um aplicativo Web, ele indica o que quer fazer ou as informações que procura, navegando para diferentes URLs (Uniform Resource Locators). Ele pode digitar um endereço diretamente (digamos https://adventure-works.com) ou selecionar um link ou um botão que inclua a URL adequada. Em um site de comércio eletrônico, você pode ter URLs parecidas com as seguintes:

  • https://adventure-works.com/ para a página principal
  • https://adventure-works.com/products/widget para obter detalhes sobre um widget
  • https://adventure-works.com/cart/buy para concluir uma compra

Como desenvolvedores, não precisamos nos preocupar com a primeira parte da URL ou com o domínio (adventure-works.com em nosso exemplo). Nosso aplicativo é colocado em ação com base naquilo que vem após o nome de domínio, começando por /. A parte após o nome de domínio é conhecida como rota.

Uma rota é um caminho para uma ação. Semelhante a tocar em um botão em um aplicativo móvel, uma rota indica a ação que o usuário deseja realizar. Registraremos rotas diferentes em nosso aplicativo Web para responder às várias solicitações às quais nosso aplicativo dá suporte.

No aplicativo, indicamos como queremos responder a determinada solicitação de rota fornecendo uma função. Uma rota é um mapa para uma função. Quando pensamos em escrever código em geral, esse conceito é relativamente natural. Quando queremos executar uma ação específica, chamamos uma função. Nossos usuários farão exatamente o mesmo. Eles apenas farão isso de maneira diferente, acessando uma rota.

Métodos ou verbos

As rotas podem ser acessadas de várias maneiras, por meio do que conhecemos como métodos ou verbos (os dois termos têm o mesmo significado e podem ser usados de maneira intercambiável). A forma como a rota é acessada fornece contexto adicional sobre o estado da solicitação do usuário e qual ação o usuário deseja executar.

Há muitos métodos disponíveis para criar um aplicativo Web, mas os dois mais comuns (e em que nos concentraremos) são GET e POST. GET geralmente indica que o usuário está solicitando informações. POST indica que o usuário precisa enviar algo e receber uma resposta.

Observação

Independentemente do verbo usado, as informações podem sempre ser retornadas para o usuário.

Um fluxo de aplicativo comum que usa GET e POST gira em torno do uso de um formulário. Digamos que criamos um aplicativo no qual o usuário deseja se registrar para uma lista de distribuição:

  1. O usuário acessa o formulário de inscrição via GET
  2. O usuário preenche o formulário e seleciona o botão enviar
  3. As informações do formulário são enviadas de volta ao servidor usando POST
  4. Uma mensagem de "êxito" é retornada ao usuário

Como você pode suspeitar, o usuário não indica diretamente o verbo que deseja usar; isso é controlado pelo aplicativo. Em termos gerais, se o usuário navegar diretamente para uma URL, digitando ou selecionando um link, ele acessará a página usando GET. Quando ele seleciona um botão para um formulário, geralmente envia as informações por meio de POST.

Observação

Estamos mantendo essa conversa em um nível relativamente geral, pois uma discussão completa do métodos está além do escopo deste módulo.

Modelos

HTML é a linguagem usada para estruturar as informações exibidas em um navegador, enquanto CSS (folhas de estilos em cascata) é usada para gerenciar o estilo e o layout. Ao criar um aplicativo, a maior parte do HTML será estática, o que significa que não será alterada. No entanto, para tornar nossas páginas dinâmicas, precisamos conseguir colocar informações de forma programática em uma página HTML. Quase todas as estruturas da Web dão suporte a esse requisito por meio de modelos.

Um modelo permite que você escreva o HTML principal (ou um modelo) e indique espaços reservados para as informações dinâmicas. Provavelmente, a sintaxe mais comum para espaço reservado é {{ }}. O Jinja, o mecanismo de modelagem para Flask, usa essa sintaxe.

<h1>Welcome, {{ name }}</h1>

No exemplo anterior, temos o HTML de h1 (um cabeçalho), com o texto que queremos exibir. O {{ name }} indica que queremos exibir uma variável chamada name logo após Bem-vindo. Com essa sintaxe, podemos escrever o HTML com nossas habilidades existentes e injetar as informações dinâmicas conforme necessário.

Verificar seu conhecimento

1.

Flask é uma estrutura para a criação de aplicativos Web em quais das seguintes linguagens de programação?