Configurando Templates - Django
A configuração de templates em um projeto Django é gerenciada pela variável TEMPLATES
settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Essa variável contém uma lista de configurações específicas para cada template engine utilizada no projeto. Por padrão, há apenas uma configuração, com os seguintes componentes principais:
: Determina a template engine utilizada. O valor padrão é a engine interna do Django, django.template.backends.django.DjangoTemplates.BACKEND
: Define uma lista de diretórios adicionais onde o Django deve buscar arquivos de template. Inicialmente, essa lista está vazia.DIRS
: Especifica se o Django deve buscar arquivos de template nas pastas templates de cada aplicação registrada.APP_DIRS
: Contém configurações adicionais, incluindo os processadores de contexto que serão aplicados durante o processamento dos templates.OPTIONS
Organização de Templates
Ao configurar APP_DIRS
True
templates
No entanto, para templates compartilhados entre várias aplicações, uma organização centralizada pode ser mais adequada. Um exemplo é a criação de uma pasta templates
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Django</title>
</head>
<body>
<h1>Hello www.programicio.com!</h1>
</body>
</html>
Suponha que o projeto seja chamado programicio
programicio/ |-- templates/ | |-- index.html |-- __init__.py |-- asgi.py |-- settings.py |-- urls.py |-- wsgi.py hello/ |-- migrations/ |-- __init__.py |-- admin.py |-- apps.py |-- models.py |-- tests.py |-- views.py
Nesse caso, a pasta templates
Configuração de Caminhos no settings.py
Para que o Django reconheça e utilize o template index.html
templates
DIRS
TEMPLATES
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
BASE_DIR / "programicio/templates",
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Nesse exemplo, o caminho BASE_DIR / "programicio/templates"
DIRS
BASE_DIR
settings.py
BASE_DIR = Path(__file__).resolve().parent.parent
Essa configuração instrui o Django a procurar templates adicionais no diretório especificado.
Renderização de Templates
O arquivo views.py
index.html
O arquivo urls.py
index
Quando a rota configurada é acessada no navegador, a função index
index.html