SlideShare uma empresa Scribd logo
Parte 2
Fluxo BásicoComo desenvolver
uma aplicação Web com
django 2.2.13
Roteiro
 Customizando uma Aplicação
Django
02
Customizando o Projeto
 Na Parte 1 iniciamos um projeto de exemplo simplemooc.
 Acrescentamos um "app" core que é a entrada principal da aplicação
e por enquanto tem apenas uma página home;
 Acrescentamos um "app" courses, nele acrescentamos um
model Course e o configuramos no "administrador de entidades"
Admin que já vem com o Django;
 Customizamos o Admin do model Course;
03
Consultando Cursos
 A aplicação possui uma página core/home que é pública (não
necessita de autenticação com login/senha);
 Vamos acrescentar outra página pública para listagem dos cursos
existentes;
 O design inicial desta página será o HTML do arquivo courses.html
(design-contact.zip disponível para download na aula 28 do curso
Python 3 na web com django – Gileno Filho - Udemy);
04
Consultando Cursos
05
Criaremos uma pasta templates
dentro do "app" courses. Dentro
desta pasta criaremos outra pasta
courses e dentro desta última um
arquivo chamado index.html.
Descompacte o
arquivo simplemooc-design-
contact.zip baixado da aula 28.
Copie todo o conteúdo do arquivo
design/courses.html para dentro
do arquivo de template index.html
Consultando Cursos
06
• Abra o arquivo courses/templates/courses/index.html e faça as
alterações:
a) Inclua uma linha logo abaixo do <!doctype html>
<!doctype html>
{% load static %}
b) Substitua o trecho abaixo
<link rel="stylesheet" href="css/styles.css" />
Por
<link rel="stylesheet" href="{% static 'css/styles.css' %}" />
Entendendo o Projeto
07
• De forma simplificada podemos dizer então:
a. O Django vai buscar os arquivos de templates nas pastas "templates" existentes nos
vários "apps". Sendo assim, caso se queira identificar que aquele template é um
específico do "app" fazemos a criação de uma pasta "courses" dentro da pasta
"templates" do "app" courses. Então conseguimos referenciar o arquivo
específico courses/index.html;
b. O Django faz o mesmo com arquivos estáticos, indo buscar os arquivos nas pastas
"static" existentes em vários "apps". No nosso caso vamos utilizar o mesmo arquivo css
incluído no "app" core, então por enquanto não precisamos criar uma pasta "static"
dentro do "app" courses.
Consultando Cursos
08
• Abra o arquivo courses/views.py e faça as alterações para ficar com
este conteúdo abaixo:
from django.shortcuts import render
def index(request):
return render(request, 'courses/index.html')
Mudando os Endereços
09
• Crie um novo arquivo urls.py da pasta simplemooc/core e coloque o
conteúdo abaixo:
from django.urls import path
from . import views
app_name = 'core'
urlpatterns = [
path('', views.home, name='home'),
]
Mudando os Endereços
10
• Crie um novo arquivo urls.py da pasta simplemooc/courses e coloque
o conteúdo abaixo:
from django.urls import path
from . import views
app_name = 'courses'
urlpatterns = [
path('', views.index, name='index'),
]
Mudando os Endereços
11
• Abra o arquivo urls.py da pasta simplemooc/simplemooc e faça as
alterações para ficar como está abaixo:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('', include('simplemooc.core.urls', namespace='core')),
path('cursos/', include('simplemooc.courses.urls', namespace='courses')),
path('admin/', admin.site.urls),
]
Entendendo os Endereços
12
• De forma simplificada podemos dizer então:
• Quando utilizar o endereço http://localhost:8000/ a nossa aplicação vai ser direcionada
para a definição abaixo existente no arquivo simplemooc/urls.py:
path('', include('simplemooc.core.urls', namespace='core')),
• Esta definição repassa para as definições existentes no arquivo simplemooc/core/urls.py
e vai "resolver o endereço" da seguinte forma:
path('', views.home, name='home'),
• Executando o método home existente no arquivo core/views.py
Entendendo os Endereços
13
• Quando utilizar o endereço http://localhost:8000/cursos/ a nossa aplicação vai ser
direcionada para a definição abaixo existente no arquivo simplemooc/urls.py:
path('cursos/', include('simplemooc.courses.urls', namespace='courses')),
• Esta definição repassa para as definições existentes no arquivo
simplemooc/courses/urls.py e vai "resolver o endereço" da seguinte forma:
path('', views.index, name='index'),
• Executando o método index existente no arquivo courses/views.py
• Para acessar, inicie a aplicação e abra no browser o endereço:
http://localhost:8000/cursos
Funciona!!
14
Consulta de Cursos
15
• Para finalizar, abra o arquivo simplemooc/core/templates/home.html e
substitua o trecho:
<li><a href="#">Cursos</a></li>
Por
<li><a href="{% url 'courses:index' %}">Cursos</a></li>
• Para testar, inicie a aplicação e abra no browser o endereço:
http://localhost:8000/
Funciona!!
16
Ao clicar no item de menu é
redirecionadopara outra
view. Veja como ficou a url na
barra de endereços.
Detalhe de um Curso
 Vamos acrescentar outra página pública para consultar detalhes de
um curso específico;
 O design inicial desta página será o HTML do arquivo course.html
(design-contact.zip disponível para download na aula 28 do curso
Python 3 na web com django – Gileno Filho - Udemy);
 Vamos também atualizar o arquivo
simplemooc/core/static/css/styles.css com o conteúdo do arquivo
styles.css disponível neste design-contact.zip;
 E utilizar a imagem design/img/course-image.png disponível neste
design-contact.zip.
17
Detalhe de um Curso
18
 Dentro da pasta courses/templates/courses criaremos um arquivo chamado
detail.html. Copie todo o conteúdo do arquivo design/course.html para dentro do arquivo
de template detail.html e faça as alterações:
• Inclua uma linha logo abaixo do <!doctype html>
<!doctype html>
{% load static %}
• Substitua o trecho abaixo
<link rel="stylesheet" href="css/styles.css" />
Por
<link rel="stylesheet" href="{% static 'css/styles.css' %}" />
Detalhe de um Curso
19
 Ainda no arquivo de template detail.html e faça as alterações:
• substitua o trecho:
<li><a href="#">Cursos</a></li>
Por
<li><a href="{% url 'courses:index' %}">Cursos</a></li>
• substitua o trecho:
<img src="img/course-image.png" alt="" />
Por
<img src="{% static 'img/course-image.png' %}" alt="" />
 Dentro da pasta simplemooc/core/static vamos criar uma pasta chamada img e colocar o
arquivo course-image.png disponível neste design-contact.zip (aula 28).
Detalhe de um Curso
20
• Altere o arquivo urls.py da pasta simplemooc/courses para ficar com
o conteúdo abaixo:
from django.urls import path
from . import views
app_name = 'courses'
urlpatterns = [
path('', views.index, name='index'),
path('<slug:slug>/', views.details, name='details'),
]
Detalhe de um Curso
21
• Altere o arquivo views.py da pasta simplemooc/courses para ficar
conforme o conteúdo abaixo:
from django.shortcuts import render
def index(request):
return render(request, 'courses/index.html')
def details(request, slug):
return render(request, 'courses/detail.html')
Detalhe de um Curso
22
 Abra o arquivo courses/templates/courses/index.html e faça a
alteração:
• Substitua os dois trechos:
<a href=""><img src="http://placehold.it/400x250"
• Por
<a href="{% url 'courses:details' 1 %}"><img src="http://placehold.it/400x250"
• Substitua os dois trechos
<a href="" title="">
• Por
<a href="{% url 'courses:details' 1 %}" title="">
Funciona!!
23
Ao clicar no no título ou na
imagem é redirecionadopara
outra view.Veja como ficou a
url na barra deendereços.
Entendendo os Endereços
24
• O endereço que aparece é http://localhost:8000/cursos/1/
• Verificando o arquivo simplemooc/courses/urls.py:
urlpatterns = [
path('', views.index, name='index'),
path('<slug:slug>/', views.details, name='details'),
]
• A última expressão representa um parâmetro nomeado “slug” que será
passado para a view:
def details(request, slug):
return render(request, 'courses/detail.html')
Entendendo o Projeto
25
• Até o momento os arquivos estão definidos com os endereços (urls) mas
apenas apresentam textos estáticos;
• Vamos modificá-los para apresentar dados vindos do banco de dados
(alguns cadastrados usando o Admin na parte 1);
Consultando Cursos
26
• Abra o arquivo courses/views.py e faça as alterações no método index
para ficar com este conteúdo abaixo:
from . import models
def index(request):
courses = models.Course.objects.all()
template_name = 'courses/index.html'
context = {
'courses': courses
}
return render(request, template_name, context)
Consultando Cursos
27
• Abra o arquivo courses/templates/courses/index.html e remova as
<div> que existem dados estáticos de dois cursos e substituir por:
{% for course in courses %}
<div class="pure-g-r content-ribbon">
<div class="pure-u-1-3">
<div class="l-box">
<a href="{% url 'courses:details' course.slug %}"><img
src="http://placehold.it/400x250" alt="{{ course.name }}" /></a>
</div>
</div>
<div class="pure-u-2-3">
<div class="l-box">
<h4 class="content-subhead"><a href="{% url
'courses:details' course.slug %}" title="">{{ course.name }}</a></h4>
{{ course.description|linebreaks }}
</div>
</div>
</div>
{% endfor %}
Entendendo o Projeto
28
• A view é reponsável, além de outras coisas, por obter e mandar os
dados iniciais para a renderização do template;
• Poderiam ser enviados diversos dados e não só a lista de cursos;
• Os dados obtidos poderiam ser tratados, filtrados ou até criados novos
dados antes de serem enviados ao template;
• O template poderia fazer testes e tratar os dados antes da exibição.
• Como veremos em outras oportinidades.
Este Lab foi produzido para ser um estudo prático
introdutório para as tecnologias envolvidas com
desenvolvimento Python/Django. Sendo assim não
tem intenção de ser um curso ou fonte de
referências.
Obrigado

Mais conteúdo relacionado

PDF
Diazo para todos
PPT
Criando Temas com Diazo
DOCX
Devmedia - Conhecendo o framework front-end Foundation
KEY
Python 07
PPT
Construindo temas para Plone com Diazo
PPTX
Workshop Django Framework - 30/10/2018
PDF
Django Módulo Básico Parte II
PDF
Django: Desenvolvendo uma aplicação web em minutos
Diazo para todos
Criando Temas com Diazo
Devmedia - Conhecendo o framework front-end Foundation
Python 07
Construindo temas para Plone com Diazo
Workshop Django Framework - 30/10/2018
Django Módulo Básico Parte II
Django: Desenvolvendo uma aplicação web em minutos

Semelhante a Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2) (20)

PPT
Mini curso de django
KEY
Python 06
PDF
Django Básico
PDF
O pontapé inicial para sua carreira de programador!
PDF
Caelum html-css-javascript-php
PDF
Django Tem Ritmo
PPTX
Aula 1 dreamweavernova
PDF
apostila-html-css-javascript.pdf
PDF
apostila-html-css-javascript.pdf
PPTX
Aula 8 web
PDF
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
PDF
Flask for CMS/App Framework development.
PDF
Caelum html-css-javascript-php
DOC
Programacao para Web I Plano de Ensinodoc
PDF
Aplicacoes Rapidas Para Web Com Django
PDF
Mapa de aprendizado Front End
PPTX
Minicurso Web. Front-end e HTML5 (parte 2)
PDF
Desbravando a web com python - Matheus Lima
PDF
Html programacao web
PDF
019 programacao web-html[1]
Mini curso de django
Python 06
Django Básico
O pontapé inicial para sua carreira de programador!
Caelum html-css-javascript-php
Django Tem Ritmo
Aula 1 dreamweavernova
apostila-html-css-javascript.pdf
apostila-html-css-javascript.pdf
Aula 8 web
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask for CMS/App Framework development.
Caelum html-css-javascript-php
Programacao para Web I Plano de Ensinodoc
Aplicacoes Rapidas Para Web Com Django
Mapa de aprendizado Front End
Minicurso Web. Front-end e HTML5 (parte 2)
Desbravando a web com python - Matheus Lima
Html programacao web
019 programacao web-html[1]
Anúncio

Mais de Pedro Fernandes Vieira (6)

PDF
Testando API Rest com Insomnia Core
PDF
Lab python django - parte 2 - python + virtualenv
PDF
Lab python django - parte 1 - windows e vagrant
PDF
Internet of Things - Overview
PDF
Automatizando o Preenchimento de Formulários Web Utilizando IMacros for Firefox
PDF
PostgreSQL - Visão Geral - Pedro Vieira
Testando API Rest com Insomnia Core
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 1 - windows e vagrant
Internet of Things - Overview
Automatizando o Preenchimento de Formulários Web Utilizando IMacros for Firefox
PostgreSQL - Visão Geral - Pedro Vieira
Anúncio

Último (19)

PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Apple Pippin Uma breve introdução. - David Glotz
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula 18 - Manipulacao De Arquivos python
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula04-Academia Heri- Tecnologia Geral 2025
Processos na gestão de transportes, TM100 Col18
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
COBITxITIL-Entenda as diferença em uso governança TI
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...

Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)

  • 1. Parte 2 Fluxo BásicoComo desenvolver uma aplicação Web com django 2.2.13
  • 2. Roteiro  Customizando uma Aplicação Django 02
  • 3. Customizando o Projeto  Na Parte 1 iniciamos um projeto de exemplo simplemooc.  Acrescentamos um "app" core que é a entrada principal da aplicação e por enquanto tem apenas uma página home;  Acrescentamos um "app" courses, nele acrescentamos um model Course e o configuramos no "administrador de entidades" Admin que já vem com o Django;  Customizamos o Admin do model Course; 03
  • 4. Consultando Cursos  A aplicação possui uma página core/home que é pública (não necessita de autenticação com login/senha);  Vamos acrescentar outra página pública para listagem dos cursos existentes;  O design inicial desta página será o HTML do arquivo courses.html (design-contact.zip disponível para download na aula 28 do curso Python 3 na web com django – Gileno Filho - Udemy); 04
  • 5. Consultando Cursos 05 Criaremos uma pasta templates dentro do "app" courses. Dentro desta pasta criaremos outra pasta courses e dentro desta última um arquivo chamado index.html. Descompacte o arquivo simplemooc-design- contact.zip baixado da aula 28. Copie todo o conteúdo do arquivo design/courses.html para dentro do arquivo de template index.html
  • 6. Consultando Cursos 06 • Abra o arquivo courses/templates/courses/index.html e faça as alterações: a) Inclua uma linha logo abaixo do <!doctype html> <!doctype html> {% load static %} b) Substitua o trecho abaixo <link rel="stylesheet" href="css/styles.css" /> Por <link rel="stylesheet" href="{% static 'css/styles.css' %}" />
  • 7. Entendendo o Projeto 07 • De forma simplificada podemos dizer então: a. O Django vai buscar os arquivos de templates nas pastas "templates" existentes nos vários "apps". Sendo assim, caso se queira identificar que aquele template é um específico do "app" fazemos a criação de uma pasta "courses" dentro da pasta "templates" do "app" courses. Então conseguimos referenciar o arquivo específico courses/index.html; b. O Django faz o mesmo com arquivos estáticos, indo buscar os arquivos nas pastas "static" existentes em vários "apps". No nosso caso vamos utilizar o mesmo arquivo css incluído no "app" core, então por enquanto não precisamos criar uma pasta "static" dentro do "app" courses.
  • 8. Consultando Cursos 08 • Abra o arquivo courses/views.py e faça as alterações para ficar com este conteúdo abaixo: from django.shortcuts import render def index(request): return render(request, 'courses/index.html')
  • 9. Mudando os Endereços 09 • Crie um novo arquivo urls.py da pasta simplemooc/core e coloque o conteúdo abaixo: from django.urls import path from . import views app_name = 'core' urlpatterns = [ path('', views.home, name='home'), ]
  • 10. Mudando os Endereços 10 • Crie um novo arquivo urls.py da pasta simplemooc/courses e coloque o conteúdo abaixo: from django.urls import path from . import views app_name = 'courses' urlpatterns = [ path('', views.index, name='index'), ]
  • 11. Mudando os Endereços 11 • Abra o arquivo urls.py da pasta simplemooc/simplemooc e faça as alterações para ficar como está abaixo: from django.contrib import admin from django.urls import path, include urlpatterns = [ path('', include('simplemooc.core.urls', namespace='core')), path('cursos/', include('simplemooc.courses.urls', namespace='courses')), path('admin/', admin.site.urls), ]
  • 12. Entendendo os Endereços 12 • De forma simplificada podemos dizer então: • Quando utilizar o endereço http://localhost:8000/ a nossa aplicação vai ser direcionada para a definição abaixo existente no arquivo simplemooc/urls.py: path('', include('simplemooc.core.urls', namespace='core')), • Esta definição repassa para as definições existentes no arquivo simplemooc/core/urls.py e vai "resolver o endereço" da seguinte forma: path('', views.home, name='home'), • Executando o método home existente no arquivo core/views.py
  • 13. Entendendo os Endereços 13 • Quando utilizar o endereço http://localhost:8000/cursos/ a nossa aplicação vai ser direcionada para a definição abaixo existente no arquivo simplemooc/urls.py: path('cursos/', include('simplemooc.courses.urls', namespace='courses')), • Esta definição repassa para as definições existentes no arquivo simplemooc/courses/urls.py e vai "resolver o endereço" da seguinte forma: path('', views.index, name='index'), • Executando o método index existente no arquivo courses/views.py • Para acessar, inicie a aplicação e abra no browser o endereço: http://localhost:8000/cursos
  • 15. Consulta de Cursos 15 • Para finalizar, abra o arquivo simplemooc/core/templates/home.html e substitua o trecho: <li><a href="#">Cursos</a></li> Por <li><a href="{% url 'courses:index' %}">Cursos</a></li> • Para testar, inicie a aplicação e abra no browser o endereço: http://localhost:8000/
  • 16. Funciona!! 16 Ao clicar no item de menu é redirecionadopara outra view. Veja como ficou a url na barra de endereços.
  • 17. Detalhe de um Curso  Vamos acrescentar outra página pública para consultar detalhes de um curso específico;  O design inicial desta página será o HTML do arquivo course.html (design-contact.zip disponível para download na aula 28 do curso Python 3 na web com django – Gileno Filho - Udemy);  Vamos também atualizar o arquivo simplemooc/core/static/css/styles.css com o conteúdo do arquivo styles.css disponível neste design-contact.zip;  E utilizar a imagem design/img/course-image.png disponível neste design-contact.zip. 17
  • 18. Detalhe de um Curso 18  Dentro da pasta courses/templates/courses criaremos um arquivo chamado detail.html. Copie todo o conteúdo do arquivo design/course.html para dentro do arquivo de template detail.html e faça as alterações: • Inclua uma linha logo abaixo do <!doctype html> <!doctype html> {% load static %} • Substitua o trecho abaixo <link rel="stylesheet" href="css/styles.css" /> Por <link rel="stylesheet" href="{% static 'css/styles.css' %}" />
  • 19. Detalhe de um Curso 19  Ainda no arquivo de template detail.html e faça as alterações: • substitua o trecho: <li><a href="#">Cursos</a></li> Por <li><a href="{% url 'courses:index' %}">Cursos</a></li> • substitua o trecho: <img src="img/course-image.png" alt="" /> Por <img src="{% static 'img/course-image.png' %}" alt="" />  Dentro da pasta simplemooc/core/static vamos criar uma pasta chamada img e colocar o arquivo course-image.png disponível neste design-contact.zip (aula 28).
  • 20. Detalhe de um Curso 20 • Altere o arquivo urls.py da pasta simplemooc/courses para ficar com o conteúdo abaixo: from django.urls import path from . import views app_name = 'courses' urlpatterns = [ path('', views.index, name='index'), path('<slug:slug>/', views.details, name='details'), ]
  • 21. Detalhe de um Curso 21 • Altere o arquivo views.py da pasta simplemooc/courses para ficar conforme o conteúdo abaixo: from django.shortcuts import render def index(request): return render(request, 'courses/index.html') def details(request, slug): return render(request, 'courses/detail.html')
  • 22. Detalhe de um Curso 22  Abra o arquivo courses/templates/courses/index.html e faça a alteração: • Substitua os dois trechos: <a href=""><img src="http://placehold.it/400x250" • Por <a href="{% url 'courses:details' 1 %}"><img src="http://placehold.it/400x250" • Substitua os dois trechos <a href="" title=""> • Por <a href="{% url 'courses:details' 1 %}" title="">
  • 23. Funciona!! 23 Ao clicar no no título ou na imagem é redirecionadopara outra view.Veja como ficou a url na barra deendereços.
  • 24. Entendendo os Endereços 24 • O endereço que aparece é http://localhost:8000/cursos/1/ • Verificando o arquivo simplemooc/courses/urls.py: urlpatterns = [ path('', views.index, name='index'), path('<slug:slug>/', views.details, name='details'), ] • A última expressão representa um parâmetro nomeado “slug” que será passado para a view: def details(request, slug): return render(request, 'courses/detail.html')
  • 25. Entendendo o Projeto 25 • Até o momento os arquivos estão definidos com os endereços (urls) mas apenas apresentam textos estáticos; • Vamos modificá-los para apresentar dados vindos do banco de dados (alguns cadastrados usando o Admin na parte 1);
  • 26. Consultando Cursos 26 • Abra o arquivo courses/views.py e faça as alterações no método index para ficar com este conteúdo abaixo: from . import models def index(request): courses = models.Course.objects.all() template_name = 'courses/index.html' context = { 'courses': courses } return render(request, template_name, context)
  • 27. Consultando Cursos 27 • Abra o arquivo courses/templates/courses/index.html e remova as <div> que existem dados estáticos de dois cursos e substituir por: {% for course in courses %} <div class="pure-g-r content-ribbon"> <div class="pure-u-1-3"> <div class="l-box"> <a href="{% url 'courses:details' course.slug %}"><img src="http://placehold.it/400x250" alt="{{ course.name }}" /></a> </div> </div> <div class="pure-u-2-3"> <div class="l-box"> <h4 class="content-subhead"><a href="{% url 'courses:details' course.slug %}" title="">{{ course.name }}</a></h4> {{ course.description|linebreaks }} </div> </div> </div> {% endfor %}
  • 28. Entendendo o Projeto 28 • A view é reponsável, além de outras coisas, por obter e mandar os dados iniciais para a renderização do template; • Poderiam ser enviados diversos dados e não só a lista de cursos; • Os dados obtidos poderiam ser tratados, filtrados ou até criados novos dados antes de serem enviados ao template; • O template poderia fazer testes e tratar os dados antes da exibição. • Como veremos em outras oportinidades.
  • 29. Este Lab foi produzido para ser um estudo prático introdutório para as tecnologias envolvidas com desenvolvimento Python/Django. Sendo assim não tem intenção de ser um curso ou fonte de referências. Obrigado