Herencia de templates
Clase 11 de 36 • Curso de Flask
Contenido del curso
Uso de templates y archivos estáticos
Extensiones de Flask
Proyecto
- 21

Planteamiento del proyecto: To Do List
01:54 min - 22

App Factory
06:49 min - 23

Uso de Blueprints
13:49 min - 24

Blueprints II
07:30 min - 25

Base de datos y App Engine con Flask
03:11 min - 26
Configuración de Google Cloud SDK
00:17 min - 27

Configuración de proyecto en Google Cloud Platform
07:11 min - 28

Implementación de Firestore
11:53 min - 29

Autenticación de usuarios: Login
11:20 min - 30

Autenticación de usuarios: Logout
10:03 min - 31

Signup
10:53 min - 32

Agregar tareas
08:27 min - 33

Eliminar tareas
13:24 min - 34

Editar tareas
09:01 min - 35

Deploy a producción con App Engine
07:43 min - 36

Conclusiones
01:27 min
Macro: son un conjunto de comandos que se invocan con una palabra clave, opcionalmente seguidas de parámetros que se utilizan como código literal. Los Macros son manejados por el compilador y no por el ejecutable compilado.
Los macros facilitan la actualización y mantenimiento de las aplicaciones debido a que su re-utilización minimiza la cantidad de código escrito necesario para escribir un programa.
En este ejemplo nuestra macro se vería de la siguiente manera:
{% macro nav_link(endpoint, text) %}
{% if request.endpoint.endswith(endpoint) %}
<li class="active"><a href="{{ url_for(endpoint) }}">{{text}}a>li>
{% else %}
<li><a href="{{ url_for(endpoint) }}">{{text}}a>li>
{% endif %}
{% endmacro %}
Un ejemplo de uso de macros en Flask:
{% from "macros.html" import nav_link with context %}
<html lang="en">
<head>
{% block head %}
<title>My applicationtitle>
{% endblock %}
head>
<body>
<ul class="nav-list">
{{ nav_link('home', 'Home') }}
{{ nav_link('about', 'About') }}
{{ nav_link('contact', 'Get in touch') }}
ul>
{% block body %}
{% endblock %}
body>
html>
Como podemos observar en la primera línea estamos llamando a macros.html que contiene todos nuestros macros, pero queremos uno en específico así que escribimos import nav_link para traer el macro deseado y lo renderizamos de esta manera en nuestro menú {{ nav_link('home', 'Home') }}.