Templates
==========
O Velox inclui um motor de templates poderoso.
Configuração
------------
.. code-block:: python
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:
.. code-block:: html
Olá, {{ nome }}!
{# Comentário #}
Condicionais
-------------
.. code-block:: html
{% if user %}
Bem-vindo, {{ user.name }}!
{% else %}
Por favor, faça login.
{% endif %}
Loops
----
.. code-block:: html
{% for item in items %}
{{ item.name }}
{% endfor %}
Variáveis de Loop
~~~~~~~~~~~~~~~~
No loop, você tem acesso a:
- ``items`` - o item atual
- ``items_index`` - índice (0-based)
- ``items_first`` - True se primeiro
- ``items_last`` - True se último
- ``items_length`` - total de itens
Filtros
-------
Use filtros com ``|``:
.. code-block:: html
{{ 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:
.. code-block:: html
{% block title %}Meu Site{% endblock %}
{% block extra %}{% endblock %}
{% block content %}{% endblock %}
Extend:
.. code-block:: html
{% extends "base.html" %}
{% block title %}Página Inicial{% endblock %}
{% block content %}
Olá!
{% endblock %}
Macros
-----
Defina macros reutilizáveis:
.. code-block:: html
{% macro button(text, type='primary') %}
{% endmacro %}
Use:
.. code-block:: html
{{ button('Salvar') }}
{{ button('Cancelar', 'secondary') }}
Includes
---------
Inclua outros templates:
.. code-block:: html
{% include "header.html" %}
{% include "footer.html" %}
Próximos Passos
-------------
- Explore :doc:`template_filters` para todos os filtros
- Leia :doc:`template_inheritance` para herança avançada