Modelos Flask: simplificando o desenvolvimento da Web
Os modelos Flask são arquivos que definem a estrutura de uma página da Web e permitem gerar conteúdo dinâmico inserindo dados em espaços reservados predefinidos.
Os modelos usam o mecanismo de modelagem Jinja2, que fornece uma ampla variedade de recursos que facilitam a criação de páginas da Web complexas.
Neste artigo, você explorará modelos Flask com exemplos e suas vantagens no desenvolvimento web.
O que são modelos de balão?
Em termos simples, os modelos do Flask são arquivos HTML que possuem espaços para alterar o conteúdo.
Chamamos esses espaços de variáveis de modelo e eles são colocados entre chaves duplas ( {{ }} ).
Você pode usar essas variáveis para exibir dados provenientes de seu aplicativo Flask , incluindo entradas de usuários ou informações obtidas de bancos de dados.
Você pode exibir a saída de uma função conectada a uma URL específica como HTML.
No exemplo abaixo, a função chamada “ show_html() ” exibirá “ Aqui está o código html ” com um cabeçalho <h1> .
Example:
Produzir conteúdo HTML a partir do código Python pode ser difícil, especialmente ao incluir dados variáveis e recursos da linguagem Python, como loops ou condicionais . Isso exigiria muita alternância entre HTML e Python.
É aí que o mecanismo de modelo Jinja2 , fornecido pela Flask, é útil.
Em vez de gerar HTML estático na função, você pode utilizar a função “ render_template() ” para exibir um arquivo HTML.
form.html:
Example:
Execute o seguinte código no shell python:
Example:
O Flask tenta localizar o arquivo HTML no diretório “ templates ” que está situado na mesma pasta do script.
- Pasta de aplicativos
- Saudações.py
- modelos
- form.html
Um “ sistema de modelagem da web ” é o processo de geração de um arquivo HTML que permite a inserção dinâmica de dados variáveis.
Um sistema de modelo da web inclui um mecanismo de modelo, uma fonte de dados e um processador de modelo.
O Flask faz uso do mecanismo de modelo jinja2. Um modelo da web consiste em código HTML com espaços reservados para variáveis e expressões (neste caso, expressões Python) que são substituídos por valores quando o modelo é exibido.
O código abaixo é armazenado como “form.html” no diretório “templates”.
Example:
Em um shell python, implemente o código a seguir para verificar a renderização do modelo.
Example:
Assim que o servidor de desenvolvimento começar a rodar, você pode abrir seu navegador e inserir o seguinte URL: http://localhost:5000/show/MR.Examples
O componente variável da URL é colocado no espaço reservado “ {{ name }} ”.
O mecanismo de modelo jinja2 possui símbolos específicos para separar do HTML:
Símbolos | Visão geral |
{% … %} | é usado para Declarações. |
{{ … }} | é usado para Expressões que são exibidas na saída do modelo. |
{# … #} | é usado para comentários que não são exibidos na saída do modelo. |
# … ## | é usado para declaração de linha |
O exemplo acima mostra a utilização de declarações condicionais em um modelo. A regra de URL direciona para a função votando_html(), que recebe um parâmetro inteiro e o passa para o modelo form.html. Dentro do modelo, o valor do parâmetro de entrada (idade) é comparado a 18 e o HTML é exibido com base no fato de ser maior, menor ou igual a 18.
O script para o modelo HTML denominado form.html é apresentado a seguir:
Example:
Abaixo está o código Python para renderizar o form.html:
Example:
Você deve observar que as declarações condicionais if-else e endif são encapsuladas no delimitador {%..%}. Depois de executar o script Python, você pode verificar a URL http://localhost/eligiblity/19 e, em seguida, http://localhost/eligiblity/12 para observar como a saída HTML muda condicionalmente.
Código do arquivo HTML do verificador de vogais:
Example:
Arquivo de código Python do verificador de vogais:
Example:
Você também pode implementar construções de loop Python dentro do modelo. Quando você abre a URL http://localhost:5000/courses em seu navegador, a função course() fornecerá um objeto de lista para o modelo form.html.
Dentro do modelo, um loop for é utilizado para renderizar o objeto de lista de cursos como células dentro de uma tabela HTML .
Segue o código do form.html onde a lista de cursos é renderizada:
Example:
Aqui está o código Python para a lista de cursos:
Example:
Mais uma vez, você descobrirá que as instruções Python que pertencem ao loop For estão encapsuladas em {%..%}, enquanto as expressões mrx estão contidas em {{ }}.
Você também pode implementar construções de loop Python dentro do modelo. Quando você abre a URL http://localhost:5000/employee em seu navegador, a função employee_detail() fornecerá um objeto de dicionário para o modelo form.html.
Dentro do modelo form.html, um loop for é utilizado para exibir os pares de chave e valor do objeto{} de dicionário do funcionário como células dentro de uma tabela HTML.
Para salvar o script HTML dos detalhes do funcionário, você deve armazená-lo como form.html no diretório de modelos.
Example:
form.html Explicação
- O código acima é um arquivo de modelo HTML chamado 'form.html' que foi projetado para exibir os salários dos funcionários e funcionará junto com o aplicativo da web Python Flask.
- O modelo HTML gera uma tabela com um cabeçalho rotulado 'EMPLOYEE SALARIES' e duas colunas denominadas 'key' e 'value'.
- Dentro da tabela, um loop for é utilizado para iterar sobre o objeto de dicionário 'employee', que foi passado como um parâmetro para o arquivo de modelo do aplicativo Flask.
- Durante cada iteração do loop for, a chave e o valor atuais do dicionário são atribuídos às variáveis 'chave' e 'valor'.
- Essas variáveis são usadas para preencher as células da tabela para cada linha.
- Após a iteração de todos os pares chave-valor no dicionário, o modelo HTML conclui o loop com a instrução {% endfor %}.
- Quando o aplicativo Flask renderizar o arquivo de modelo, ele exibirá uma tabela HTML que contém os nomes dos funcionários e seus respectivos salários.
Execute o código a seguir no ambiente shell do Python.
Example:
Exemplo de Explicação
Aqui estão os pontos principais do script Python acima:
- O script usa o Flask para criar um aplicativo da Web com uma única rota.
- A rota é definida usando o decorador @app.route e está associada à URL '/employee'.
- Quando um usuário visita esta URL, a função employee_detail é executada.
- A função Employees_detail cria um dicionário chamado Employees_dict que contém os nomes e salários de cinco funcionários.
- A função render_template é chamada com dois argumentos: o nome de um arquivo de modelo HTML e um dicionário de variáveis para preencher o modelo.
- O dicionário de variáveis passado para render_template contém um único par chave-valor, onde a chave é 'employee' e o valor é o dicionário employee_dict.
- O aplicativo Flask é iniciado no modo de depuração usando o método app.run() dentro de um bloco if name == ' main ', o que garante que o aplicativo só seja executado se o script for executado diretamente.
Benefícios dos Modelos de Frasco
- Os modelos Flask permitem a separação da camada de apresentação (HTML/CSS) da lógica do aplicativo (código Python), ajudando assim a manter e atualizar o código do aplicativo sem afetar a aparência da página da web.
- Os modelos promovem a reutilização de código em páginas da Web por meio do uso de modelos básicos contendo elementos comuns (como cabeçalho, rodapé e barra de navegação), que podem ser estendidos em outros modelos.
- Os modelos Flask fornecem recursos dinâmicos de criação de conteúdo, permitindo a manipulação de dados e a geração de elementos HTML com base na entrada do usuário ou nos dados do aplicativo usando estruturas de controle como loops e instruções condicionais.
- Os modelos do Flask podem melhorar o desempenho do aplicativo da Web armazenando em cache os modelos usados com frequência, o que reduz a carga do servidor e melhora o tempo de resposta para solicitações subsequentes.
- Os modelos Flask podem contribuir para uma melhor experiência do usuário ajudando a criar uma interface de usuário visualmente atraente e consistente, permitindo que os desenvolvedores se concentrem em aprimorar a experiência do usuário sem se preocupar com os detalhes técnicos da renderização HTML e CSS.
Conclusão
Se você é um desenvolvedor que deseja criar aplicativos da Web modernos, os modelos do Flask são um recurso poderoso que você deve considerar usar. Eles permitem que você separe a camada de apresentação da lógica do aplicativo, tornando seu código mais fácil de manter e atualizar ao longo do tempo. Além disso, os modelos do Flask permitem que você reutilize o código em várias páginas da Web, economizando tempo e reduzindo a probabilidade de erros.
Uma das vantagens mais significativas dos modelos Flask é sua capacidade de gerar conteúdo dinâmico. Com os modelos do Flask, você pode criar páginas da Web que se adaptam à entrada do usuário ou à mudança de dados, resultando em uma melhor experiência do usuário. Além disso, os modelos do Flask podem melhorar o desempenho do seu aplicativo da Web, reduzindo a quantidade de dados que precisam ser enviados ao cliente.
No geral, os modelos do Flask são uma ferramenta crítica na criação de aplicativos da Web gerenciáveis, escaláveis e visualmente atraentes. Usando modelos, você pode criar aplicativos da web que são mais fáceis de manter e atualizar ao longo do tempo. Esteja você construindo um site simples ou um aplicativo da web complexo, os modelos Flask são um componente essencial de qualquer projeto Flask.