Desenvolvimento Web com Django

Preview:

DESCRIPTION

Slides da palestra do Flisol João Pessoa 2013

Citation preview

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

Recommended