desenvolvimento web com django
DESCRIPTION
Slides da palestra do Flisol João Pessoa 2013TRANSCRIPT
Desenvolvimento Web com Django
Allisson AzevedoFlisol João Pessoa 2013http://speakerdeck.com/allisson
http://slideshare.net/allisson
Saturday, April 27, 13
Allisson Azevedo?
Saturday, April 27, 13
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
Saturday, April 27, 13
Saturday, April 27, 13
Desenvolvimento Web
Saturday, April 27, 13
Protocolo HTTP
Hypertext Transfer Protocol
Troca de mensagens HTTP (Requisição e Resposta)
HTTP/1.1 (1999)
Saturday, April 27, 13
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
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
Django
Saturday, April 27, 13
HistóriaCriado 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
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
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
Principais características
Cache
Autenticação / Permissão
Admin
Internacionalização
Ampla documentação
Saturday, April 27, 13
Instalando
pip install django
django-admin.py startproject meuprojeto
python manage.py runserver
Saturday, April 27, 13
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
Estrutura de um projeto
Saturday, April 27, 13
Estrutura do aplicativo
Saturday, April 27, 13
Demonstração
https://github.com/allisson/django-shortener-example
Saturday, April 27, 13
Aplicações reutilizáveis
Saturday, April 27, 13
Saturday, April 27, 13
Saturday, April 27, 13
Saturday, April 27, 13
Saturday, April 27, 13
Saturday, April 27, 13
Saturday, April 27, 13
Saturday, April 27, 13
Saturday, April 27, 13
Saturday, April 27, 13
Saturday, April 27, 13
Deployment
Saturday, April 27, 13
Conectando sua aplicação
FastCGI
WSGI
Saturday, April 27, 13
Servidores HTTP
Apache
Nginx
Gunicorn
Escrito em python
Suporta WSGI nativamente
Saturday, April 27, 13
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
FinalizandoExiste 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
Perguntas?
Saturday, April 27, 13