• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Django - Muito além do básico
 

Django - Muito além do básico

on

  • 1,365 views

Uma breve introdução ao framework Django, apresentação da Latinoware 2013

Uma breve introdução ao framework Django, apresentação da Latinoware 2013

Statistics

Views

Total Views
1,365
Views on SlideShare
891
Embed Views
474

Actions

Likes
3
Downloads
28
Comments
0

9 Embeds 474

http://christiano.me 373
http://cloud.feedly.com 38
https://twitter.com 36
http://feeds.feedburner.com 11
http://digg.com 10
http://localhost 3
http://127.0.0.1 1
http://feedly.com 1
http://www.inoreader.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Django - Muito além do básico Django - Muito além do básico Presentation Transcript

    • Muito além do básico Christiano Anderson christiano@christiano.me http://christiano.me Twitter: @dump
    • O que é? Framework para desenvolvimento web; ● Para quem é perfeccionista com prazos; ● Permite alto raproveitamento de código; ● Escrito em Python; ●
    • Público alvo Iniciante Avançado Chuck Norris
    • Também bom para... Designer Programador Suporte/Operação
    • Django?
    • Um pouco de história ● ● ● Criado em 2003 por Adrian Holovaty, Jacob KaplanMoss e Simon Willison; Objetivo era sites de notícias como ljworld.com, lawrence.com; Ganhou popularidade muito rápido;
    • Django Reinhardt
    • Django É um ótimo framework web
    • Django NÃO é um CMS
    • Django Utiliza princípios de desenvolvimento ágil
    • Não se Repita!
    • Recursos ● Ótimo e poderoso ORM; ● Segue princípios MVC (ou melhor: MTV); ● Sistema de templates eficiente; ● Um ADMIN que já vem integrado; ● Sistema de cache poderoso; ● Internacionalização; ● Testes Unitários; ● Personalização de middleware em diversos níveis;
    • E também... ● Um servidor leve para desenvolvimento; ● Roteador de URLs; ● Poderoso sistema de formulários e validações; ● Internacionalização; ● Sistema de Geo integrado (GeoDjango); ● Diversas APIs que podem ser plugadas no projeto; ● Ótima documentação e uma comunidade fantástica!
    • ● Models – Django ORM propriamente dito; ● Templates – Sistema de Templates; ● Views – Funções em Python;
    • Persistência dos dados ● MySQL; ● PostgreSQL; ● Oracle; ● Outros bancos (com aplicação de patches); ● MongoDB (com aplicação de patches);
    • Aplicativo ● Aplicação que executa alguma tarefa específica, exemplo, django.contrib.humanize
    • Projeto ● Conjunto de código, classes e aplicativos para um determinado objetivo.
    • Projetos vs Aplicativos Um projeto é a união de um ou mais aplicativos; Um aplicativo pode fazer parte de diversos projetos;
    • Anatomia de um projeto Django
    • Django ainda mais poderoso
    • Django Debug Toolbar
    • Django Debug Toolbar – Permite depurar encontrar gargalos e problemas em uma aplicação Django; – Se for corretamente utilizado, pode ser um grande aliado para deixar sua aplicação com ótima performance
    • Django Debug Toolbar
    • Django Debug Toolbar ● ● No slide anterior é possível identificar gargalos em queries do banco de dados; Identificando os locais de gargalo, pode implementar melhorias ou maneiras diferentes de acessar esses dados;
    • Django Extensions
    • Django Extensions ● ● Um canivete suíço para quem trabalha com Django; Possui inúmeras funções que auxiliam o desenvolvedor, como : – Criação de gráfico da sua modelagem; – Ferramentas para gerenciar banco de dados; – Ferramentas de exportação; – shell_plus; – runserver_plus; – Entre outras
    • Exemplo Graph Models
    • Django Compressor ● ● Gerencia os arquivos estáticos e comprime JavaScript e CSS em arquivos únicos; Gera novo arquivo a cada modificação, dessa forma, evita o cache do navegador;
    • Django Compressor
    • Django South (Migrations) ● ● ● O Models do Django não permite uma atualização simples das tabelas; Muitas vezes, quando você adiciona um novo campo, é necessário fazer um ALTER TABLE na mão; O objetivo do South é tornar essa tarefa mais simples possível
    • Grappelli Admin Interface ● ● ● Um novo “skin” para o Admin tradicional do Django; Possui várias funcionalidades que deixam o Admin mais elegante; Possui conjunto de utilitários e editor WYSIWYG para facilitar gestão de conteúdo.
    • Grappelli
    • Grappelli
    • Grappelli
    • GeoDjango ● ● ● O Django possui uma API para uso de mapas e cálculos geográficos; É possível usar o ORM do Django para realizar funções geográficas; Hoje na Latinoware, assista minha palestra sobre GeoDjango! :-)
    • GeoDjango
    • Deploy com Gunicorn
    • Pontos de segurança Por que é melhor usar: http://site.com/produto/[0-9]+ ao invés de: http://site.com/produto/{id} ?
    • Pontos de segurança ● Com uma estrutura semelhante a site.com/produto/{id} você fica vulnerável a SQL injection ● Seja o mais rigoroso possível com sua construção de URLs, além de tornar o projeto mais elegante, você evita problemas de segurança.
    • Boas práticas ● Siga PEP8 e use variáveis legíveis; ● Trabalhe sempre com o princípio DRY; ● Trate sempre os dados externos (POST, GET); ● Prefira sempre trabalhar com Virtualenv; ● Sempre desabilite o DEBUG em produção;
    • http://ponycheckup.com/
    • Onde hospedar? ● https://www.digitalocean.com/ ● http://linode.com/ ● https://www.webfaction.com/ ● http://aws.amazon.com/
    • É isso! :-) Dúvidas? Se não der tempo de responder sua dúvida, me procure durante o evento ou me chame nas redes sociais http://christiano.me Twitter: @Dump