Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Python

Modelagem com Jinja2 in Flask: Data e Formatação da Hora com moment.js

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called Templating With Jinja2 in Flask .
Templating With Jinja2 in Flask: Advanced

Portuguese (Português) translation by Rafael Corrêa Gomes (you can also view the original English article)

Nas primeira e segunda parte desta série de três partes tutorial, vimos como esquematizar a estrutura do modelo em um aplicativo baseado em balão usando Jinja2 de forma modular e como criar processadores de contexto personalizado, filtros e macros em Jinja2.

Nesta parte, vamos cobrir como fazer implementação avançadas de data e hora no nível do modelo em Jinja2 usando moment.js.

Guia de introdução

Data e hora é uma coisa dolorosa para manipular em aplicativos da web. Manuseá-los no nível do Python, usando a biblioteca de datetime, aumenta a sobrecarga e é bastante complexa quando se trata de manipulação fusos horários corretamente. Nós devemos padronizar os carimbos de hora UTC quando armazenados no banco de dados, mas em seguida os carimbos de hora precisam ser processadas a cada vez que eles precisam ser apresentados aos usuários em todo o mundo.

É uma coisa inteligente para adiar esse processamento ao lado do cliente, ou seja, o navegador. O navegador sempre sabe o fuso horário atual do usuário e será capaz de fazer a manipulação de data e hora corretamente. Também, isso tira a sobrecarga necessária de nossos servidores de aplicação.

Assim como qualquer biblioteca JS, Moment.js podem ser incluídos em nosso aplicativo da seguinte maneira. Temos de colocar o arquivo JS, moment.min.js, na pasta static/js. Isto pode ser usado no nosso arquivo HTML, adicionando a seguinte instrução juntamente com outras bibliotecas JS:

O uso básico de Moment.js é mostrado no código a seguir. Isto pode ser feito no console do navegador para JavaScript:

Para usar o Moment.js em nosso aplicativo, a melhor maneira será escrever um wrapper em Python e usá-lo através de variáveis de ambiente do jinja2. Consulte este executável para obter mais informações. Adicione um arquivo chamado momentjs.py no mesmo nível como my_app.py.

flask_app/momentjs.py

Adicione a seguinte linha no flask_app/my_app.py após a inicialização do app. Isto irá adicionar a classe momentjs para as variáveis de ambiente de jinja.

Agora moment.js pode ser usado para formatar Data e Hora em modelos como segue:

Conclusão

Nesta série de tutorial, abordamos os conceitos básicos de modelagem Jinja2 na perspectiva do Flask. Começamos com o básico do básico do Jinja2 e aprendido as práticas recomendadas sobre como colocar para fora a estrutura do modelo e alavancar os padrões de herança.

Então, nós criamos alguns processadores de contexto personalizado, filtros e macros que vêm muito útil na modelagem avançada. O tutorial final de como moment.js pode ser utilizada juntamente com o Jinja2 para criar aplicações altamente flexíveis e poderosas com o Date Time formatando.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.