Visão Geral
O curso Jinja Foundation oferece uma introdução completa ao Jinja, um dos motores de templates mais populares no ecossistema Python. Jinja é amplamente utilizado para gerar saídas dinâmicas em aplicativos web, permitindo a criação de HTML, XML, JSON e outros formatos de forma eficiente e escalável. Durante o curso, os participantes aprenderão a usar o Jinja para separar a lógica de apresentação da lógica de negócios em seus projetos, além de utilizar recursos avançados como macros, filtros e extensões.
O curso Jinja Foundation capacitará os alunos a usar o Jinja de maneira eficiente, permitindo a criação de templates dinâmicos e escaláveis para aplicativos web, ao mesmo tempo em que ensina boas práticas de segurança e desempenho para projetos baseados em Python.
Objetivo
Após realizar este curso Jinja Foundation, você será capaz de:
- Compreender os fundamentos do motor de templates Jinja.
- Criar e organizar templates dinâmicos para aplicativos web.
- Utilizar variáveis, loops e condições dentro de templates.
- Aplicar macros, filtros e extensões personalizadas para otimizar a reutilização de código em templates.
- Integrar Jinja com frameworks web como Flask e Django para criar sites dinâmicos e escaláveis.
Publico Alvo
- Desenvolvedores web que utilizam frameworks Python, como Flask ou Django, e desejam criar templates dinâmicos.
- Engenheiros de software interessados em separar lógica de apresentação e lógica de negócios.
- Desenvolvedores que buscam otimizar a geração de conteúdo dinâmico em HTML ou outros formatos.
Pre-Requisitos
- Conhecimento básico de Python.
- Familiaridade com HTML e conceitos de desenvolvimento web.
- Experiência com frameworks web como Flask ou Django é recomendada, mas não obrigatória.
Materiais
Inglês + Exercícios + Lab Pratico
Conteúdo Programatico
Introduction to Jinja
- Overview of template engines
- Purpose and benefits of using Jinja
- Installing and setting up Jinja
- Basic structure of a Jinja template
Basic Template Syntax
- Variables in Jinja templates
- Template expressions and basic operations
- Using loops (
for
) and conditions (if
) in templates
- Including and extending templates (inheritance system)
Working with Filters
- Introduction to filters in Jinja
- Commonly used built-in filters (e.g.,
capitalize
, replace
, join
, safe
)
- Chaining filters and creating custom filters
- Practical examples of using filters for data formatting
Macros and Template Inheritance
- Defining and using macros in templates
- Macro arguments and defaults
- Template inheritance and block structures
- Best practices for reusable templates and clean code
Template Control Structures
- Working with complex control structures
- Looping over data with
for
and using loop
attributes
- Handling errors and undefined variables
- Conditional expressions and switching logic with
if
Template Contexts and Globals
- Understanding the template context
- Passing variables and data to templates
- Working with global functions and constants
- Context processors in Flask/Django and their application
Custom Filters and Extensions
- Creating and registering custom filters in Jinja
- Extending Jinja with custom extensions
- Real-world use cases of filters and extensions
- Advanced use of built-in Jinja extensions
Security and Optimization
- Preventing XSS (Cross-Site Scripting) in Jinja templates
- Using the
autoescape
feature for secure HTML rendering
- Optimizing template rendering performance
- Best practices for large-scale template management
Integrating Jinja with Flask
- Setting up Jinja templates in Flask
- Passing data from views to templates
- Rendering templates in Flask routes
- Customizing template loading and static files in Flask
Integrating Jinja with Django
- Understanding Django’s template engine based on Jinja
- Setting up Jinja as the template engine in Django
- Rendering templates and working with Django context processors
- Using Django template tags and filters with Jinja
Testing and Debugging Jinja Templates
- Debugging template errors and common pitfalls
- Best practices for testing Jinja templates
- Using the Jinja sandbox for safe template rendering
- Tools and techniques for improving template development
Project: Building a Dynamic Web Application with Jinja
- Designing a real-world application using Jinja
- Implementing reusable components with template inheritance and macros
- Integrating the application with Flask or Django
- Final project presentation and code review
TENHO INTERESSE