Templates
O Velox inclui um motor de templates poderoso.
Configuração
from velox import Velox
app = Velox(__name__)
# Definir pasta de templates (padrão: templates)
app.template('templates')
@app.get('/')
def index(req, res):
return app.render('index.html', {'nome': 'João'})
Variáveis
Use {{ variavel }} para imprimir variáveis:
<h1>Olá, {{ nome }}!</h1>
{# Comentário #}
Condicionais
{% if user %}
<p>Bem-vindo, {{ user.name }}!</p>
{% else %}
<p>Por favor, faça login.</p>
{% endif %}
Loops
<ul>
{% for item in items %}
<li>{{ item.name }}</li>
{% endfor %}
</ul>
Variáveis de Loop
No loop, você tem acesso a:
items- o item atualitems_index- índice (0-based)items_first- True se primeiroitems_last- True se últimoitems_length- total de itens
Filtros
Use filtros com |:
{{ nome|upper }} {# JOÃO #}
{{ nome|lower }} {# joão #}
{{ nome|title }} {# João #}
{{ texto|truncate:30 }} {# texto truncado #}
{{ preco|currency:"R$" }} {# R$ 10,00 #}
{{ items|join:", " }} {# item1, item2 #}
Herança de Templates
base.html:
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}Meu Site{% endblock %}</title>
{% block extra %}{% endblock %}
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
Extend:
{% extends "base.html" %}
{% block title %}Página Inicial{% endblock %}
{% block content %}
<h1>Olá!</h1>
{% endblock %}
Macros
Defina macros reutilizáveis:
{% macro button(text, type='primary') %}
<button class="btn btn-{{ type }}">{{ text }}</button>
{% endmacro %}
Use:
{{ button('Salvar') }}
{{ button('Cancelar', 'secondary') }}
Includes
Inclua outros templates:
{% include "header.html" %}
{% include "footer.html" %}
Próximos Passos
Explore template_filters para todos os filtros
Leia template_inheritance para herança avançada