Permalink
Browse files

Edicao 1 ainda sem as imagens

  • Loading branch information...
marinho committed Sep 22, 2011
0 parents commit 967d705389a6083de9d56743afe9ea025424f705
Showing with 16,751 additions and 0 deletions.
  1. +38 −0 00-apresentacao.md
  2. +26 −0 01-alatazan-chega-ao-planeta-terra.md
  3. +52 −0 02-o-que-e-django-como-e-isso.md
  4. +179 −0 03-baixando-e-instalando-o-django.md
  5. +331 −0 04-criando-um-blog-maneiro.md
  6. +178 −0 05-entendendo-como-o-django-trabalha.md
  7. +511 −0 06-o-rss-e-o-entregador-fiel.md
  8. +457 −0 07-fazendo-a-apresentacao-do-site-com-templates.md
  9. +350 −0 08-trabalhando-com-arquivos-estaticos.md
  10. +166 −0 09-paginas-de-conteudo-sao-flatpages.md
  11. +410 −0 10-permitindo-contato-do-outro-lado-do-universo.md
  12. +344 −0 11-deixando-os-comentarios-fluirem.md
  13. +603 −0 12-um-pouco-de-html-e-css-so-faz-bem.md
  14. +574 −0 13-um-pouco-de-python-agora.md
  15. +218 −0 14-ajustando-as-coisas-para-colocar-no-ar.md
  16. +244 −0 15-infinitas-formas-de-se-fazer-deploy.md
  17. +493 −0 16-preparando-um-servidor-com-windows.md
  18. +622 −0 17-preparando-um-servidor-com-linux.md
  19. +354 −0 18-wsgi-e-servidores-compartilhados.md
  20. +579 −0 19-signals-e-urls-amigaveis-com-slugs.md
  21. +911 −0 20-uma-galeria-de-imagens-simples-e-util.md
  22. +1,194 −0 21-organizando-as-coisas-com-tags.md
  23. +760 −0 22-o-mesmo-site-em-varios-idiomas.md
  24. +690 −0 23-fazendo-um-sistema-de-contas-pessoais.md
  25. +565 −0 24-fazendo-mais-coisas-na-aplicacao-de-contas-pessoais.md
  26. +987 −0 25-a-aplicacao-de-contas-pessoais-sai-do-backstage.md
  27. +566 −0 26-separando-as-contas-pessoais-para-usuarios.md
  28. +809 −0 27-funcoes-de-usuarios.md
  29. +613 −0 28-programando-com-testes-automatizados.md
  30. +227 −0 29-criando-ferramentas-para-a-linha-de-comando.md
  31. +30 −0 30-adentrando-a-selva-e-conhecendo-os-verdadeiros-bichos.md
  32. +104 −0 README.md
  33. +49 −0 apendice-01-informacoes-adicionais-sobre-o-django.md
  34. +164 −0 apendice-02-sites-de-referencia.md
  35. +82 −0 apendice-03-outros-livros-sobre-o-assunto.md
  36. +74 −0 apendice-04-formatacao-de-datahora.md
  37. +52 −0 apendice-05-codigos-de-idiomas.md
  38. +76 −0 apendice-06-editores-e-ides.md
  39. +364 −0 apendice-07-settings.md
  40. +123 −0 apendice-08-comandos-padrao-do-managepy.md
  41. +66 −0 apendice-09-fusos-horarios.md
  42. +20 −0 apendice-10-formatacao-de-strings.md
  43. +78 −0 apendice-11-metodos-da-queryset.md
  44. +88 −0 apendice-12-field-lookups-de-queryset.md
  45. +107 −0 apendice-13-template-tags-padrao.md
  46. +222 −0 apendice-14-template-filters-padrao.md
  47. +92 −0 apendice-15-tipos-de-campos-de-modelo.md
  48. +98 −0 apendice-16-tipos-de-campos-de-formularios-dinamicos.md
  49. +152 −0 apendice-17-widgets-de-formularios-dinamicos.md
  50. +64 −0 apendice-18-classes-de-middleware.md
  51. +76 −0 apendice-19-aplicacoes-de-contrib.md
  52. +161 −0 apendice-20-generic-views.md
  53. +108 −0 apendice-21-decorators.md
  54. +42 −0 apendice-22-httpresponses.md
  55. +76 −0 apendice-23-signals.md
  56. +24 −0 apendice.md
  57. +82 −0 boas-vindas.html
  58. +26 −0 licenca.md
@@ -0,0 +1,38 @@
Olá,

nos últimos anos, tenho investido a maior parte do meu tempo com o **Django**.

Eu vinha de uma longa jornada onde segui firmemente (e nem sempre fielmente ou alegremente) com o Delphi e o PHP. Mas chegou uma hora que uma **nova tecnologia** era necessária - já haviam se passado quase 10 anos!

A saída foi conhecer as linguagens de programação populares, colocando alguns princípios em mente:

* A tecnologia teria que ser **multi-plataforma**
* A tecnologia teria de ser útil para **sites e sistemas web**
* Eu queria ter **resultados**

<img src="/media/img/ilustracao_1.gif" align="left"/>

Após meses de namoro com Java e .Net, notei que aquilo não era o que eu precisava. Então parti para conhecer outras... TCL, Ruby, **Python**... opa! Não precisei passar daqui!

Do Python eu cheguei ao Django e ali fiquei.

O Django é uma daquelas coisas que você já tem uma boa impressão na chegada, mas algumas semanas depois, você está completamente apaixonado. Hoje, quase 3 anos depois, **eu sinto amor pra vida inteira** - ou pelo menos para a curta vida que as tecnologias costumam levar.

Há cerca de um ano atrás, estava para concluir a escrita de um livro em português sobre Django, e percebi que ele não era nada do que eu queria.

Passei a borracha e resolvi esperar.

Então depois de muitos meses e muitas conversas, percebi que o melhor caminho seria este.

Eu quero que pessoas comuns aprendam Django, portanto, este é o **livro eletrônico** que criei para essas pessoas comuns.

<img src="/media/img/ilustracao_5.gif" align="right"/>

Pessoas comuns são pessoas que gostam de **passear com a família**, **ouvir música**, **conhecer gente legal** e **ganhar dinheiro**.

Tá certo que toda pessoa comum tem também lá suas esquisitices... então, o nosso ator principal aqui será o um alienígena. Pronto, agora não temos mais problemas com a esquisitice!

Os capítulos serão lançados periodicamente, espero que você goste!

**Próximo capítulo: [Alatazan chega ao Planeta Terra](/alatazan-chega-ao-planeta-terra/)**

@@ -0,0 +1,26 @@
Há poucas semanas, Alatazan estava numa nave de transporte em massa vinda de **Katara**.

<img src="/media/img/ilustracao_5.gif" align="right"/>

Katara (que significa **"nós resolvemos"** em seu idioma mais popular) é um planeta não muito distante, que gira em torno de um sol *gelado e azul claro**. Lá existe a tradição de enviar seus jovens para outros planetas, com o fim de passar um tempo ali aprendendo seus costumes e dando um tempo para os pais que querem ter uma folga das manias desses jovens.

Alatazan escolheu o Planeta Terra depois de consultar no Google Sky e achar bonitinha a forma rechonchuda, molhada e quentinha da Terra. E assim, veio parar aqui através de uma coisa que parece um prato cheio de lâmpadas coloridas. Sim, eles conseguem acesso à nossa internet, e você saberá em breve como fazem isso.

Algumas semanas depois de chegar à Terra, Alatazan percebeu que o nosso pequeno planeta estava em polvorosa com aquilo que chamávamos de **"Engenharia de Software"**. Ele ainda não compreendeu como haveria uma engenharia para uma coisa mole e sem forma, mas Alatazan é otimista, sempre. E sabe que vai resolver esse enigma.

Depois de resolver a questão de sua reluzente careca com uma peruca bacana (apesar do amarelo ser um tom de amarelo incomum para cabelos), Alatazan também procurou resolver uma questão menos importante mas muito chata: seus documentos.

Com documentos que o fizeram se tornar menos esquisito aos olhos dos terráqueos, Alatazan conseguiu uma vaga em um curso da tal "Engenharia de Software". Logo percebeu que não havia engenheiro de software algum, na verdade os profissionais da engenharia de software eram chamados de muitos nomes, como "analistas", "arquitetos", "projetistas", "desenvolvedores", "codificadores", "homologadores", "enroladores", enfim, eram muitos títulos, não muito claros, e Alatazan ainda não entendia bem para quê serviam tantos nomes para se realizar atividades tão parecidas.

<img src="/media/img/ilustracao_4.gif" align="left"/>

Na saída da primeira aula, Alatazan estava um tanto atordoado com as confusas definições que ouvira. Ainda não entendia como Arquitetura e Engenharia serviam para definir quase as mesmas coisas de um assunto, e também não entendia pra quê serviam todos aqueles desenhos, que precisam ser refeitos todos os dias e repetidos em códigos e outras formas de repetições... Foi quando ele notou que uma garota e um rapaz eram os únicos que desciam a rampa, que pareciam se divertir.

Alatazan pensou: "puxa, do quê esses dois esquisitos estão rindo depois de toda essa tortura? Deve haver algo que eu preciso entender..."

Alatazan se achava no direito de achar os terráqueos esquisitos. Eram todos diferentes dele, e ele tinha um alto padrão de beleza para Katara: um belo topete (sim, isso também será explicado), olhos de desenho japonês, e dois belos dedos em cada pé!

E foi assim que Alatazan conheceu **Cartola** e **Nena**, seus parceiros nessa aventura.

**Próximo capítulo: [O que é Django? Como é isso?](/o-que-e-django-como-e-isso/)**

@@ -0,0 +1,52 @@
- Tzzzzt!

A campainha da casa de **Cartola** tocou, era Alatazan do lado de fora. Ele deu uma olhadela pela veneziana e correu para abrir a porta.

- Vem, estamos fazendo um projeto lá dentro, usando uma coisa nova, você vai gostar disso.

Para Alatazan todas as tecnologias terráqueas eram novas, mas a alegria de Cartola já indicava que ela parecia ser um pouco diferente das apresentadas no curso.

<img src="/media/img/ilustracao_4.gif" align="right"/>

Correram pra dentro e **Nena** estava sentada ao seu laptop com alguns arquivos abertos e olhando o resultado de sua "arte" no navegador.

- Veja, o Cartola descobriu esse novo jeito de fazer sites. É uma tecnologia chamada Django... dá pra fazer muitas coisas diferentes sem muito esforço. O maior esforço é esquecer um pouco do que sabemos hoje pra entender o novo paradigma.

### Mas enfim, o que é o Django?

Django é um framework, construído usando a linguagem Python.

**Framework** é uma **caixa de ferramentas**. Mas não é apenas isso, o Django é uma caixa de ferramentas **com um manual dentro**, e as ferramentas **combinam muito bem umas com as outras**. Você usa as ferramentas que quiser, e se você quiser substituir uma delas por outra, isso **é perfeitamente possível**.

Já o **Python** é uma linguagem de programação, trata-se de uma tecnologia que lê o código que você escreveu numa sintaxe conhecida e dá vida àquilo.

Mas o Python também não é só isso. Ele funciona em praticamente qualquer computador, seja com o Windows, Linux ou Mac, é fácil de aprender e de entender. Sua forma de tratar a programação é uma forma que **faz sentido**. Os caras que criaram o Python não tinham a menor vontade de complicar as coisas.

Além do Django e do Python, você vai precisar de um banco de dados.

O Banco de Dados é onde os dados são guardados. Quando você está em uma rodoviária ou aeroporto, existe o guarda-volumes, um local onde você paga um valor pra guardar suas coisas por um certo tempo. Quando precisa guardar dinheiro, você vai ao banco. O Banco de Dados é o lugar certo para guardar **dados**, e ele é independente do Django.

Os bancos de dados que o Django conhece são o **MySQL**, **PostgreSQL**, **SQLite**, **Oracle** e Microsoft **SQL Server**. Mas nós vamos trabalhar por um bom tempo só com o **SQLite**, que é o mais fácil deles.

E para ver o seu site ou programa funcionando, você vai precisar de um **Navegador**, que é o programa que você usa para acessar sites da web. Mozilla **Firefox**, Microsoft **Internet Explorer** e Apple **Safari** são alguns deles. Nós vamos usar o Firefox por ser o único destes que funciona tanto no Windows, quanto no Linux e no Mac. Mas não se preocupe com isso, o navegador é o que menos importa quando se trata de Django.

### E como ele funciona?

Então resumindo a história, o Django funciona assim:

1. você tem um navegador, o Firefox por exemplo;
1. você entra no navegador e digita o endereço do seu site;
1. o site é feito em Django, usando a linguagem Python;
1. através do Django, seu site acessa dados do Banco de Dados e em arquivos locais e retorna para seu navegador uma bela página com funcionalidades em geral;
1. você olha sorridente para o navegador e vê o resultado final.

<p align="center">
<img src="/gallery/o-que-e-django-como-e-isso/file/" alt="Onde entra seu site, o Django e o Python nessa história"/>
</p>

Alatazan agora sabe do que o Django se trata, e já se sentiu mais em casa. Em Katara, as coisas costumam ser mais simples do que têm sido na Terra. Isso porque o povo de lá já passou por isso o suficiente pra descobrir que simplificar as coisas sempre ajuda no resultado final. O que eles não sabem é que simplificar evita cabelos brancos, já que eles não possuem cabelos.

No próximo capítulo, vamos baixar e instalar o Django, o Python e o que mais for necessário, e dar os primeiros passos para criar o primeiro projeto: um blog, que Alatazan vai usar para se comunicar com sua família.

**Próximo capítulo: [Baixando e Instalando o Django](http://www.aprendendodjango.com/baixando-e-instalando-o-django/)**

@@ -0,0 +1,179 @@
# DESCRICAO CURTA

<img src="http://www.aprendendodjango.com/media/img/ilustracao_2.gif" alt="" align="left"/>

Depois de tomar um suco de tangerina, Alatazan faz o download e instala o **Python**, o **Django**, a biblioteca do banco de dados **SQLite** e fica tranquilo ao saber que logo vai fazer seu primeiro projeto.

Ele ainda não sabe exatamente o que fazer, mas idéias não faltam:

- um sistema de controle para suas músicas intergalácticas
- um site de publicação de fotos de unhas retorcidas
- um meio de se comunicar com sua mãe, que deve estar uma arara com ele

Mas isso ele vai ver depois, agora é hora de deixar a máquina funcionando para seu ambiente de criação.

# TEXTO

Quando Alatazan chegou à Terra, sua pequena nave foi enviada da nave maior, e ao chegar, chocou-se ao chão, meio desajeitada, e pareceu acertar alguém que passeava com seu cachorrinho.

Alatazan saiu de dentro um pouco desajeitado e uma velhinha lhe ofereceu um suco.

Ele adorou aquilo, e agora, na casa de Cartola, ele tomava um suco de tangerina pra refrescar um pouco antes de retomar à descoberta do Django.

Do nada, ele soltou essa:

- Quem inventou o suco?

- Sei lá, alguém que estava sentindo calor, há muito tempo atrás...

- Quem foi eu não sei, mas ainda bem que ele contou a receita pra alguém, senão teria ido dessa pra melhor com sua idéia guardada e deixando um monte de gente fadada ao cafezinho.

- A fruta é de preço baixo, fácil de comprar, a receita é livre para qualquer um, é só ter um pouquinho de tempo, água, liquidificador, açúcar, essas coisas... bom demais! Vou levar isso pra Katara e vou ficar rico fazendo sucos...

<img src="http://www.aprendendodjango.com/media/img/ilustracao_2.gif" alt="" align="right"/>

E depois dessas divagações, eles voltaram ao computador.

- Como é que se consegue o Django? - Alatazan já foi logo indagando ao Cartola...

## Como conseguir o Django

O Django é **software livre**. O Python também é **software livre**.

**Software livre** é todo software que sua a receita é livre, pública, acessível para qualquer um. É como se você for a um restaurante e quiser ver como é a cozinha pra ter certeza de que não estão lhe oferecendo gato por frango. É como se você quiser um dia fazer diferente e misturar suco de limão com abacate... parece estranho, mas você pode fazer isso se quiser (e é estranho que algumas pessoas realmente gostem).

Os caras que fizeram o Django acreditam que todo software (ou pelo menos a maioria deles) deveria ser livre. Eles ganham dinheiro usando software livre, mas não impedem que outras pessoas também o usem e ganhem dinheiro da mesma forma, ou até mais.

Mas se o software que você faz será livre ou não, isso também é um direito seu.

Então ficou fácil de resolver. Você pode baixar o Django e não pagar nada por isso. Usá-lo e não pagar nada por isso. E pode vender o seu trabalho com ele, e não repassar nada a eles por isso. Só é preciso que escreva em algum lugar que seu software foi escrito usando Django.

O mesmo vale para o Python e para as bibliotecas adicionais que o Django utiliza.

## Baixando e instalando

Há várias formas de se instalar o Django. Algumas muito fáceis, outras muito educativas. Nós vamos seguir pelo caminho que deve ser o mais difícil deles. Isso é porque é importante passar por essas etapas para abrir sua mente ao universo Python e Django, mas caso queira o caminho mais prático, vá direto ao final deste capítulo e veja como fazer.

### No Windows

Bom, então vamos começar pelo **Python**.

Se você usa **Windows**, vá até a página abaixo e faça o download do executável de instalação (algo como **"Windows installer"**) mais próximo à sua realidade (**recomendo a versão 2.5.2**):

http://www.python.org/download/

Após baixar o arquivo, clique duas vezes sobre ele e clique no botão **"Next"**.

<p align="center">
<img src="http://www.aprendendodjango.com/gallery/instalacao-do-python/file/" alt="Instalando o Python no Windows"/>
</p>

Na próxima página, a imagem abaixo será exibida, guarde o caminho indicado no campo (no caso da imagem abaixo, é **"C:\Python25\"**, pois vamos usá-lo logo após a instalação do Python. Depois dela, siga clicando no botão **"Next"** até finalizar.

<p align="center">
<img src="http://www.aprendendodjango.com/gallery/instalacao-do-python-2/file/" alt="Caminho de instalação"/>
</p>

Por fim, é importante fazer isso: o Windows não consegue encontrar sozinho o Python, portanto, é preciso dizer a ele onde o Python está. Isso se faz adicionando o caminho de instalação do Python à variável de ambiente **PATH**, do Windows.

Pressione as teclas **Windows + Pause** (a tecla Windows é a tecla do logotipo do Windows).

Na janela aberta, clique na aba **"Avançado"** e depois disso, no botão *Variáveis de ambiente*:



<p align="center">
<img src="http://www.aprendendodjango.com/gallery/variaveis-de-ambiente/file/" alt="Janela de Propriedades do Sistema"/>
</p>

Na caixa de seleção **"Variáveis do Sistema"** clique duas vezes sobre o item **"Path"**.

<p align="center">
<img src="http://www.aprendendodjango.com/gallery/variaveis-do-sistema/file/" alt="Janela de Propriedades do Sistema"/>
</p>

E ao final do campo **"Valor da Variável"**, adicione um ponto-e-vírgula e o caminho que você memorizou da instalação do Python, como está destacado abaixo.

<p align="center">
<img src="http://www.aprendendodjango.com/gallery/variavel-path/file/" alt="Editando variável path"/>
</p>

Pronto! O Python está pronto para uso. Agora vamos ao **Django**!

Na página a seguir você encontrará alguns meios para instalar o Django.

http://www.djangoproject.com/download/


Vamos instalar o **tarball** da versão 1.0. Tarball é um arquivo compactado que termina com **".tar.gz"** e precisa de um programa de descompressão para ser aberto.

Para o **Windows**, o **7-Zip** é um software (também livre) que faz isso pra você. Faça o download da seguinte página e instale em sua máquina:

http://www.7-zip.org/


Voltando ao Django, localize **"Django-1.0.tar.gz"** na página de Download do Django citada acima. Faça o download do arquivo e descompacte onde bem quiser.

Dentro da pasta criada - que provavelmente vai se chamar **"Django-1.0"**) você vai criar um novo arquivo, chamado **"instalar.bat"**, edite usando o **Bloco de Notas** e escreva dentro o seguinte código:

python setup.py install
pause

Feche, salve, e clique duas vezes para executar.

Feito isso, o Django estará instalado. Agora vamos seguir para o último passo: **instalar a biblioteca do banco de dados SQLite**.

O SQLite é um banco de dados simples, sem muitos recursos. É ideal para o ambiente de criação e desenvolvimento. Não dá pra fazer muitas coisas com ele, mas você dificilmente vai precisar de fazer muitas coisas enquanto cria seu site. Para o Django trabalhar em conjunto com o SQLite, é preciso apenas instalar uma biblioteca, chamada **pySQLite**, e nada mais.

Então, vá até a página seguinte e faça o download do **tarball** (código-fonte, com extensão .tar.gz).

http://oss.itsystementwicklung.de/trac/pysqlite/#Downloads


Se a instalação do pySQLite apresentar **erros de compilação** no Windows, tente instalar com um dos instaladores executáveis disponíveis na página de download acima. Isso às vezes ocorre por consequência de algum tipo de incompatibilidade entre compiladores.

Após o download, faça o mesmo que fez com o Django:

1. descompacte usando o 7-zip
1. crie o arquivo **instalar.bat** com aquele mesmo código dentro
1. execute
1. pronto.

Pois bem, agora você tem um ambiente de desenvolvimento instalado para começar a usar.

### No Linux, Mac e outros sistemas

Se você usa **Linux** ou **Mac**, os passos não serão diferentes dos seguidos para o Windows.

No site do Python são disponíveis os arquivos para download e instalação para esses sistemas. No caso do Django e pySQLite o processo é basicamente o mesmo, com as devidas diferenças comuns entre os sistemas operacionais.

Normalmente o Linux já vem com o Python e o pySQLite instalados.

### Existe um caminho mais fácil?

Sim, existe um caminho bem mais fácil. Como já foi dito lá em cima, o processo acima é mais difícil, mas, o melhor para o seu aprendizado.

Se quiser instalar de forma mais fácil, use o **DjangoStack**. Veja neste site como fazê-lo:

http://www.marinhobrandao.com/blog/djangostack-facil-para-o-iniciante-aprender-django/


Alatazan respirou aliviado. Apesar da sopa de letrinhas, a coisa não parecia tão complicada.

- então tudo se resume a instalar 3 coisas: o Python, o Django e o pySQLite.

<img src="http://www.aprendendodjango.com/media/img/ilustracao_3.gif" alt="" align="right"/>

- que são feitos de forma que os princípios do software livre sejam preservados: usando outros softwares livres - completou Nena

- e então, o que vamos fazer amanhã?

- vamos criar o seu primeiro projeto. Você já tem alguma idéia do que quer fazer?

- sim, quero dar um jeito de mandar mensagens para a minha família, mostrar como tem sido a minha vida por aqui, o que tenho descoberto, algumas fotos dos tênis da Rua 9...

- então o que você quer, é um **blog**. Vamos fazer isso então!

**Próximo capítulo: [Criando um Blog maneiro](http://www.aprendendodjango.com/criando-um-blog-maneiro/)**


Oops, something went wrong.

0 comments on commit 967d705

Please sign in to comment.