12. Templates - AndersonBatalha/tango_with_django GitHub Wiki
O uso de templates tem o objetivo de separar a lógica do aplicativo (views e models) da apresentação e aparência (templates).
-
Criar diretório de templates
-
No diretório onde está localizado o projeto Django, criar um diretório de nome 'templates'. Dica: encontre o arquivo manage.py
(env) $ mkdir templates -
Em seguida, crie dentro da pasta templates um diretório de nome 'rango'. Neste diretório serão armazenados os templates do app rango. * É uma boa prática separar os templates em pastas separadas para cada aplicativo do seu projeto Django
(env) $ mkdir templates/rango
-
-
Alterar o arquivo settings.py
-
No arquivo settings.py localizar as seguintes linhas e alterar:
TEMPLATES = [ { (...) DIRS = [<caminho_da_pasta>/tango_with_django_project/templates] (...) } ]
-
-
A lista DIRS informa ao Django onde os templates estarão armazenados.
- esta não é a maneira correta. Caso este projeto seja utilizado em colaboração por outras pessoas, o caminho da pasta poderá variar. Para resolver esse problema, é possível utilizar as funções do Python para obter o diretório do seu projeto, independente de onde ele esteja.
- Utilizar caminhos relativos
-
Criar uma variável TEMPLATE_DIR e alterar a lista DIRS para:
TEMPLATE_DIR = os.path.join(BASE_DIR, "templates") TEMPLATES = [ { (...) DIRS = [TEMPLATE_DIR,] (...) } ]
-
- BASE_DIR é uma variável que já existe no arquivo settings.py, ela representa a localização do projeto Django.
- Adicionando templates
-
Na pasta templates/rango, crie um arquivo chamado index.html, e adicione a este arquivo:
<head> <title>Rango</title> </head> <body> <h1>Rango says...</h1> <div> hey there partner! <br /> <strong>{{ boldmessage }}</strong><br /> </div> <div> <a href="/rango/about/">About</a><br /> </div> </body>-
Tudo o que está entre colchetes duplos {{ }} representa variáveis. A variável {{ boldmessage }} deve estar definida na view para ser exibida no template.
-
O que está dentro de {% %} são comandos específicos da linguagem de templates do Django
-
-
A partir deste código HTML será retornada uma página. Para isso é necessário alterar a view index() para retornar a página HTML ao invés de texto puro.
-
No arquivo rango/views.py:
def index(request): context_dict = {'boldmessage': 'olá rango'} return render(request, 'rango/index.html', context=context_dict)- context_dict é a variável que representa um dicionário onde serão passados os valores a serem exibidos no template. O contexto é responsável por mapear as variáveis Python com variáveis de template
- A função render() recebe como parâmetros uma requisição (request), o template a ser processado (rango/index.html), e opcionalmente um contexto (context_dict).
-