Slide 1

Slide 1 text

Desenvolvimento Web com Django Allisson Azevedo Flisol João Pessoa 2013 http://speakerdeck.com/allisson http://slideshare.net/allisson Saturday, April 27, 13

Slide 2

Slide 2 text

Allisson Azevedo? Saturday, April 27, 13

Slide 3

Slide 3 text

Allisson Azevedo Graduado em Licenciatura em Computação UEPB Desenvolvedor Web Django/Rails/NodeJS MySQL/PostgreSQL MongoDB/Redis Arquiteturas escaláveis Saturday, April 27, 13

Slide 4

Slide 4 text

Saturday, April 27, 13

Slide 5

Slide 5 text

Saturday, April 27, 13

Slide 6

Slide 6 text

Desenvolvimento Web Saturday, April 27, 13

Slide 7

Slide 7 text

Protocolo HTTP Hypertext Transfer Protocol Troca de mensagens HTTP (Requisição e Resposta) HTTP/1.1 (1999) Saturday, April 27, 13

Slide 8

Slide 8 text

Protocolo HTTP Trabalha com códigos de retorno 200 (OK) 302 (Redirecionamento) 404 (Não encontrado) 500 (Erro interno no servidor) Exemplo (Firebug) Saturday, April 27, 13

Slide 9

Slide 9 text

Páginas dinâmicas Common Gateway Interface (1993) PHP (1996) Java Servlet (1997) ASP (1997) Ruby on Rails (2004) e Django (2005) http://bit.ly/DFrZ Saturday, April 27, 13

Slide 10

Slide 10 text

Django Saturday, April 27, 13

Slide 11

Slide 11 text

História Criado em 2003 pelos programadores do Lawrence Journal-World Adrian Holovaty, Simon Willison e Jacob Kaplan- Moss (2005) Foco inicial em sites de notícias (LJWorld.com, Lawrence.com e KUsports.com) Open Source em 2005, Batizado em homenagem ao guitarrista de jazz Django Reinhardt. Saturday, April 27, 13

Slide 12

Slide 12 text

Vantagens Framework voltado ao desenvolvimento ágil Desenvolvimento em camadas (MVC) Grande comunidade de desenvolvedores Framework confiável, usado em grandes sites (Disqus, Instagram, Mozilla, Rdio, Globo.com) Full stack Saturday, April 27, 13

Slide 13

Slide 13 text

Principais características Roteador de urls Templates Biblioteca para testes Validação de formulários Persistência de dados (Sqlite, MySQL, Postgresql, Oracle) Saturday, April 27, 13

Slide 14

Slide 14 text

Principais características Cache Autenticação / Permissão Admin Internacionalização Ampla documentação Saturday, April 27, 13

Slide 15

Slide 15 text

Instalando pip install django django-admin.py startproject meuprojeto python manage.py runserver Saturday, April 27, 13

Slide 16

Slide 16 text

Aplicativos e Projetos Aplicativo: É uma aplicação web que faz alguma coisa específica. Ex: django.contrib.auth Projeto: Conjunto de configurações e aplicativos Um projeto contém vários aplicativos e um aplicativo pode estar em vários projetos Saturday, April 27, 13

Slide 17

Slide 17 text

Estrutura de um projeto Saturday, April 27, 13

Slide 18

Slide 18 text

Estrutura do aplicativo Saturday, April 27, 13

Slide 19

Slide 19 text

Demonstração https://github.com/allisson/django-shortener-example Saturday, April 27, 13

Slide 20

Slide 20 text

Aplicações reutilizáveis Saturday, April 27, 13

Slide 21

Slide 21 text

Saturday, April 27, 13

Slide 22

Slide 22 text

Saturday, April 27, 13

Slide 23

Slide 23 text

Saturday, April 27, 13

Slide 24

Slide 24 text

Saturday, April 27, 13

Slide 25

Slide 25 text

Saturday, April 27, 13

Slide 26

Slide 26 text

Saturday, April 27, 13

Slide 27

Slide 27 text

Saturday, April 27, 13

Slide 28

Slide 28 text

Saturday, April 27, 13

Slide 29

Slide 29 text

Saturday, April 27, 13

Slide 30

Slide 30 text

Saturday, April 27, 13

Slide 31

Slide 31 text

Deployment Saturday, April 27, 13

Slide 32

Slide 32 text

Conectando sua aplicação FastCGI WSGI Saturday, April 27, 13

Slide 33

Slide 33 text

Servidores HTTP Apache Nginx Gunicorn Escrito em python Suporta WSGI nativamente Saturday, April 27, 13

Slide 34

Slide 34 text

Configuração ideal Nginx servindo arquivos estáticos Gunicorn rodando o projeto em Django Nginx passando as requisições de conteúdo não estático para o Gunicorn (proxy reverso) Saturday, April 27, 13

Slide 35

Slide 35 text

Finalizando Existe uma demanda muito grande de bons desenvolvedores Django Aprenda HTML - CSS - SASS/LESS Javascript (Jquery não é javascript) Deployment em servidores Linux Ler documentação Saturday, April 27, 13

Slide 36

Slide 36 text

Perguntas? Saturday, April 27, 13