SlideShare uma empresa Scribd logo
1 de 26
Descomplicando o
desenvolvimento web com
Django
Henrique G. G. Pereira
Outubro / 2021
Django
Python e Django
Django é ridiculamente rápido!
• É possível ir de uma idéia até uma
aplicação completa em muito pouco
tempo.
• Você não precisa ser um expert em
modelagem de banco de dados.
• Você não precisa ser um expert em
orientação a objetos.
• Ideal para prototipagem.
• Ideal para produção.
Django já vem com tudo.
• Quando você usa o Django, você já tem:
• Sistema de Usuários
• Painel Administrativo
• Site Maps
• Sistema de Templates
• Mapeador Objeto-Relacional
• Gestão de Arquivos Estáticos
• Suporte a múltiplos bancos de dados
• Servidor de Testes
• Formulários
• Migrações
Django é seguro.
• Muitos erros comuns em aplicações web
como SQL injections, XSS, CSRF, e
Clickjacking não fazem nem cócegas no
Django.
• Django segue as melhores práticas da
indústria.
Alguns locais que usam ou usaram Django:
• Pinterest
• Instagram
• Disqus
• Spotify
• Nasa
Preparando o Ambiente
• https://www.python.org/
• Baixe o Python para sua Plataforma
• Python 3.10 foi lançado semana passada!
• https://www.djangoproject.com/
• Instale o Django
• pip install Django
Começando um Projeto
• django-admin.py startproject MeuSite
• Isso cria a estrutura básica de um projeto Django.
• Cria uma pasta chamada MeuSite
• Cria um arquivo chamado manage.py que vai ser usado pra gerenciar o projeto
• Cria uma pasta chamada MeuSite que contém as configurações do projeto
• Contém o arquivo settings.py
• Contém o arquivo urls.py
settings.py
• Configurações do projeto:
• Quais aplicações serão instaladas
• Quais as configurações do banco de dados
• Padrão para desenvolvimento é SQLite 3
• Suporta: MySQL, MariaDB, PostgreSQL, Oracle
• Quais as configurações de segurança padrão
urls.py
• Define as rotas ou caminhos para que o projeto vai usar.
• /admin leva ao painel administrativo
Começando uma aplicação
• python manage.py startapp Produtos
• Cria uma pasta correspondente a uma aplicação chamada Produtos.
• models.py contém os modelos de objectos que vão ser usados na nossa aplicação.
• views.py contém as regras de negócio que serão usadas na aplicação
• admin.py descreve como os modelos vão ser mostrados no painel administrativo
models.py
• Modelos são classes em Python.
• Cada modelo vai ser uma tabela no banco de dados.
• Não precisa escrever SQL!
• Qualquer mudança feita na estrutura de um modelo gera uma migração.
• python manage.py makemigrations
• Depois que a migração é criada, você pode executá-la no banco de dados.
• python manage.py migrate
admin.py
• Qual o comportamento dos modelos no painel administrativo?
• Registrando o modelo é possível criar/editar/remover.
Painel Administrativo
• Migre os modelos
• Rode o servidor de testes
• python manage.py runserver
• Acesse em http://localhost:8000/admin
• Crie um usuário usando python manage.py createsuperuser
views.py
• Regras de negócio
• Escritas em Python.
• Funções ou Classes
Templates
• Django tem uma linguagem própria para uso nos templates.
• Permite condicionais
• Permite laços de repetição
• Permite funções
• Templates são apenas para exibição dos dados.
• Toda a lógica fica nas Views e no Modelo.
Urls.py
• Definir as rotas permite que os usuários acessem nosso site.
• Usa path converters ou expressões regulares.
• Proteção automática contra URL Injections.
Demo Final
Quer saber mais?
• PythonBrasil 2021
• De 11 a 17 de Outubro de 2021
• Evento online e gratuito
• Inscrições ainda estão abertas.
https://2021.pythonbrasil.org.br/
• Site Oficial do Django
• https://djangoproject.com/
• https://docs.djangoproject.com/
Obrigado!

Mais conteúdo relacionado

Mais procurados

Network Troubleshooting - Part 2
Network Troubleshooting - Part 2Network Troubleshooting - Part 2
Network Troubleshooting - Part 2SolarWinds
 
Segment Routing Lab
Segment Routing Lab Segment Routing Lab
Segment Routing Lab Cisco Canada
 
Segment Routing: Prepare Your Network For New Business Models
Segment Routing:  Prepare Your Network For New Business ModelsSegment Routing:  Prepare Your Network For New Business Models
Segment Routing: Prepare Your Network For New Business ModelsCisco Service Provider
 
Software Defined Network (SDN) using ASR9000 :: BRKSPG-2722 | San Diego 2015
Software Defined Network (SDN) using ASR9000 :: BRKSPG-2722 | San Diego 2015Software Defined Network (SDN) using ASR9000 :: BRKSPG-2722 | San Diego 2015
Software Defined Network (SDN) using ASR9000 :: BRKSPG-2722 | San Diego 2015Bruno Teixeira
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
 
E1000 is faster than VMXNET3
E1000 is faster than VMXNET3E1000 is faster than VMXNET3
E1000 is faster than VMXNET3Eric Sloof
 
Border Gateway Protocol
Border Gateway ProtocolBorder Gateway Protocol
Border Gateway ProtocolKashif Latif
 
IP Address
IP AddressIP Address
IP Addresstishko18
 
Introduction to text to speech
Introduction to text to speechIntroduction to text to speech
Introduction to text to speechBilgin Aksoy
 
Open shortest path first (ospf)
Open shortest path first (ospf)Open shortest path first (ospf)
Open shortest path first (ospf)Respa Peter
 
Word_Embedding.pptx
Word_Embedding.pptxWord_Embedding.pptx
Word_Embedding.pptxNameetDaga1
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
Routing Information Protocol
Routing Information ProtocolRouting Information Protocol
Routing Information ProtocolKashif Latif
 

Mais procurados (20)

Border Gatway Protocol
Border Gatway ProtocolBorder Gatway Protocol
Border Gatway Protocol
 
How BGP Works
How BGP WorksHow BGP Works
How BGP Works
 
Network Troubleshooting - Part 2
Network Troubleshooting - Part 2Network Troubleshooting - Part 2
Network Troubleshooting - Part 2
 
Arp rarp
Arp rarpArp rarp
Arp rarp
 
Ccna
CcnaCcna
Ccna
 
Segment Routing Lab
Segment Routing Lab Segment Routing Lab
Segment Routing Lab
 
Segment Routing: Prepare Your Network For New Business Models
Segment Routing:  Prepare Your Network For New Business ModelsSegment Routing:  Prepare Your Network For New Business Models
Segment Routing: Prepare Your Network For New Business Models
 
Cisco ospf
Cisco ospf Cisco ospf
Cisco ospf
 
Software Defined Network (SDN) using ASR9000 :: BRKSPG-2722 | San Diego 2015
Software Defined Network (SDN) using ASR9000 :: BRKSPG-2722 | San Diego 2015Software Defined Network (SDN) using ASR9000 :: BRKSPG-2722 | San Diego 2015
Software Defined Network (SDN) using ASR9000 :: BRKSPG-2722 | San Diego 2015
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
 
Iot rpl
Iot rplIot rpl
Iot rpl
 
E1000 is faster than VMXNET3
E1000 is faster than VMXNET3E1000 is faster than VMXNET3
E1000 is faster than VMXNET3
 
Modes of router
Modes of routerModes of router
Modes of router
 
Border Gateway Protocol
Border Gateway ProtocolBorder Gateway Protocol
Border Gateway Protocol
 
IP Address
IP AddressIP Address
IP Address
 
Introduction to text to speech
Introduction to text to speechIntroduction to text to speech
Introduction to text to speech
 
Open shortest path first (ospf)
Open shortest path first (ospf)Open shortest path first (ospf)
Open shortest path first (ospf)
 
Word_Embedding.pptx
Word_Embedding.pptxWord_Embedding.pptx
Word_Embedding.pptx
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação
 
Routing Information Protocol
Routing Information ProtocolRouting Information Protocol
Routing Information Protocol
 

Semelhante a EBAC Django

Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance RailsVitor Pellegrino
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoAlvaro Viebrantz
 
Customizando a Admin do django
Customizando a Admin do djangoCustomizando a Admin do django
Customizando a Admin do djangoGabriel Freitas
 
Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Acquia
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosRyan Padilha
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Azure DevOps - Um case de sucesso
Azure DevOps - Um case de sucessoAzure DevOps - Um case de sucesso
Azure DevOps - Um case de sucessoArmando Junior
 
F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G Ofabio.thomaz
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppCloves da Rocha
 

Semelhante a EBAC Django (20)

Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Django Básico
Django BásicoDjango Básico
Django Básico
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance Rails
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
Customizando a Admin do django
Customizando a Admin do djangoCustomizando a Admin do django
Customizando a Admin do django
 
Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e Desafios
 
Desenvolvimento Web
Desenvolvimento WebDesenvolvimento Web
Desenvolvimento Web
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Api todo list
Api todo listApi todo list
Api todo list
 
Python 06
Python 06Python 06
Python 06
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
 
Django
DjangoDjango
Django
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Azure DevOps - Um case de sucesso
Azure DevOps - Um case de sucessoAzure DevOps - Um case de sucesso
Azure DevOps - Um case de sucesso
 
F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G O
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 

Mais de Henrique Gabriel Gularte Pereira

Python com Django: ganhando espaço em uma Universidade Federal
Python com Django:  ganhando espaço em uma Universidade FederalPython com Django:  ganhando espaço em uma Universidade Federal
Python com Django: ganhando espaço em uma Universidade FederalHenrique Gabriel Gularte Pereira
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Henrique Gabriel Gularte Pereira
 
Como não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conheciaComo não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conheciaHenrique Gabriel Gularte Pereira
 

Mais de Henrique Gabriel Gularte Pereira (20)

BogoSort 2015
BogoSort 2015BogoSort 2015
BogoSort 2015
 
Mythbusters - Front in SM
Mythbusters - Front in SMMythbusters - Front in SM
Mythbusters - Front in SM
 
O Estado do Python
O Estado do PythonO Estado do Python
O Estado do Python
 
Não é uma palestra sobre Python
Não é uma palestra sobre PythonNão é uma palestra sobre Python
Não é uma palestra sobre Python
 
Site da UFSM: Django a 700 requisições por segundo
Site da UFSM: Django a 700 requisições por segundoSite da UFSM: Django a 700 requisições por segundo
Site da UFSM: Django a 700 requisições por segundo
 
Python com Django: ganhando espaço em uma Universidade Federal
Python com Django:  ganhando espaço em uma Universidade FederalPython com Django:  ganhando espaço em uma Universidade Federal
Python com Django: ganhando espaço em uma Universidade Federal
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
 
Introdução ao Python com Django
Introdução ao Python com DjangoIntrodução ao Python com Django
Introdução ao Python com Django
 
DevOps com Python
DevOps com PythonDevOps com Python
DevOps com Python
 
Como programar como o coelho assassino de caerbannog
Como programar como o coelho assassino de caerbannogComo programar como o coelho assassino de caerbannog
Como programar como o coelho assassino de caerbannog
 
Como não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conheciaComo não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conhecia
 
Bogosort [CfC]
Bogosort [CfC]Bogosort [CfC]
Bogosort [CfC]
 
Welcome to the Django
Welcome to the DjangoWelcome to the Django
Welcome to the Django
 
BogoSort 2.0
BogoSort 2.0BogoSort 2.0
BogoSort 2.0
 
Antigo_Scrum
Antigo_ScrumAntigo_Scrum
Antigo_Scrum
 
Análise do BogoSort
Análise do BogoSortAnálise do BogoSort
Análise do BogoSort
 
Usando o WICD com localizacao fisica de dispositivos
Usando o WICD com localizacao fisica de dispositivosUsando o WICD com localizacao fisica de dispositivos
Usando o WICD com localizacao fisica de dispositivos
 
O Software Livre no Mundo do MicroBlogging
O Software Livre no Mundo do MicroBloggingO Software Livre no Mundo do MicroBlogging
O Software Livre no Mundo do MicroBlogging
 
Estabelecimento e Encerramento de Conexão
Estabelecimento e Encerramento de ConexãoEstabelecimento e Encerramento de Conexão
Estabelecimento e Encerramento de Conexão
 
Olá Python!
Olá Python!Olá Python!
Olá Python!
 

EBAC Django

  • 1. Descomplicando o desenvolvimento web com Django Henrique G. G. Pereira Outubro / 2021
  • 4. Django é ridiculamente rápido! • É possível ir de uma idéia até uma aplicação completa em muito pouco tempo. • Você não precisa ser um expert em modelagem de banco de dados. • Você não precisa ser um expert em orientação a objetos. • Ideal para prototipagem. • Ideal para produção.
  • 5. Django já vem com tudo. • Quando você usa o Django, você já tem: • Sistema de Usuários • Painel Administrativo • Site Maps • Sistema de Templates • Mapeador Objeto-Relacional • Gestão de Arquivos Estáticos • Suporte a múltiplos bancos de dados • Servidor de Testes • Formulários • Migrações
  • 6. Django é seguro. • Muitos erros comuns em aplicações web como SQL injections, XSS, CSRF, e Clickjacking não fazem nem cócegas no Django. • Django segue as melhores práticas da indústria.
  • 7. Alguns locais que usam ou usaram Django: • Pinterest • Instagram • Disqus • Spotify • Nasa
  • 8. Preparando o Ambiente • https://www.python.org/ • Baixe o Python para sua Plataforma • Python 3.10 foi lançado semana passada! • https://www.djangoproject.com/ • Instale o Django • pip install Django
  • 9. Começando um Projeto • django-admin.py startproject MeuSite • Isso cria a estrutura básica de um projeto Django. • Cria uma pasta chamada MeuSite • Cria um arquivo chamado manage.py que vai ser usado pra gerenciar o projeto • Cria uma pasta chamada MeuSite que contém as configurações do projeto • Contém o arquivo settings.py • Contém o arquivo urls.py
  • 10. settings.py • Configurações do projeto: • Quais aplicações serão instaladas • Quais as configurações do banco de dados • Padrão para desenvolvimento é SQLite 3 • Suporta: MySQL, MariaDB, PostgreSQL, Oracle • Quais as configurações de segurança padrão
  • 11. urls.py • Define as rotas ou caminhos para que o projeto vai usar. • /admin leva ao painel administrativo
  • 12. Começando uma aplicação • python manage.py startapp Produtos • Cria uma pasta correspondente a uma aplicação chamada Produtos. • models.py contém os modelos de objectos que vão ser usados na nossa aplicação. • views.py contém as regras de negócio que serão usadas na aplicação • admin.py descreve como os modelos vão ser mostrados no painel administrativo
  • 13. models.py • Modelos são classes em Python. • Cada modelo vai ser uma tabela no banco de dados. • Não precisa escrever SQL! • Qualquer mudança feita na estrutura de um modelo gera uma migração. • python manage.py makemigrations • Depois que a migração é criada, você pode executá-la no banco de dados. • python manage.py migrate
  • 14.
  • 15. admin.py • Qual o comportamento dos modelos no painel administrativo? • Registrando o modelo é possível criar/editar/remover.
  • 16.
  • 17. Painel Administrativo • Migre os modelos • Rode o servidor de testes • python manage.py runserver • Acesse em http://localhost:8000/admin • Crie um usuário usando python manage.py createsuperuser
  • 18. views.py • Regras de negócio • Escritas em Python. • Funções ou Classes
  • 19.
  • 20. Templates • Django tem uma linguagem própria para uso nos templates. • Permite condicionais • Permite laços de repetição • Permite funções • Templates são apenas para exibição dos dados. • Toda a lógica fica nas Views e no Modelo.
  • 21.
  • 22. Urls.py • Definir as rotas permite que os usuários acessem nosso site. • Usa path converters ou expressões regulares. • Proteção automática contra URL Injections.
  • 23.
  • 25. Quer saber mais? • PythonBrasil 2021 • De 11 a 17 de Outubro de 2021 • Evento online e gratuito • Inscrições ainda estão abertas. https://2021.pythonbrasil.org.br/ • Site Oficial do Django • https://djangoproject.com/ • https://docs.djangoproject.com/