FAQ: Geral¶
Por que esse projeto existe?¶
Django surgiu de uma necessidade muito prática: World Online, um jornal com atividade Web que é responsável por construir aplicações Web complexas nos prazos do jornalismo. Na redação em ritmo acelerado, World Online muitas vezes tinha apenas algumas horas para criar uma aplicação Web complexa, desde o escopo até ao lançamento.
Ao mesmo tempo, os desenvolvedores web do World Online têm sido consistentemente perfeccionistas quando se trata de seguir as melhores práticas do desenvolvimento Web.
No outono de 2003, os desenvolvedores do World Online (Adrian Holovaty e Simon Willison) abandonaram o PHP e começaram a usar Python para desenvolver seus websites. Enquanto desenvolviam intensivamente sites ricamente interativos tais como Lawrence.com eles começaram a extrair um framework de desenvolvimento web genérico que os permitia construir aplicações Web mais e mais rápido. Eles melhoravam este framework constantemente, adicionando novas melhorias ao longo de dois anos.
No verão de 2005, World Online decidiu abrir o código-fonte do software resultante, Django. Django não existiria sem um uma série de outros projetos open-source – Apache, Python, e PostgreSQL apenas para citar alguns – e estamos muito animados por sermos capazes de dar algo de volta para a comunidade open-source.
O que significa e como se pronuncia “Django”?¶
Django leva o nome de Django Reinhardt, um guitarrista de jazz manouche de 1930 até início de 1950. Até hoje, ele é considerado um dos melhores guitarristas de todos os tempos.
Ouça a música dele. Você vai gostar.
Django é pronunciado JANG-oh. Rima com FANG-oh. O “D” é mudo.
Nós também gravamos um clipe de áudio da pronúncia.
Django é estável?¶
Sim, é bastante estável. Empresas como Disqus, Instagram, Pinterest e Mozilla têm usado Django por muito anos. Sites desenvolvidos em Django resistem a picos de tráfego de mais de 50 mil acessos por segundo.
Django escala?¶
Sim. Comparado com o tempo de desenvolvimento, hardware é barato, por isso, Django é projetado para aproveitar o máximo de hardware quanto você pode dar a ele.
Django usa uma arquitetura “shared-nothing”, que siginfica que você pode adicionar hardware em qualquer nível – servidores de banco de dados, servidores de cache ou servidores de aplicação/web.
O framework separa os componentes organizadamente como a sua camada de banco de dados e a camada de aplicação. Além disso, ele provém um simples e poderoso framework de cache.
Quem está por trás disso?¶
O Django foi desenvolvido no World Online, no departamento web de um jornal em Lawrence - Kansas, nos Estados Unidos. Hoje em dia o Django é mantido por um time de voluntários internacional.
Quais sites usam Django?¶
DjangoSites.org possui uma lista crescente de sites construídos utilizando Django.
Django afirma ser um framework MVC, mas ele chama o Controller de “view” e a View de “template”. Por que não usar os nomes padrões?¶
Bem, os nomes padrões são discutíveis.
Em nosso entendimento de MVC, a “view” representa os dados que são apresentados ao usuário. Nao é necessariamente como a informação é apresentada, mas qual informação é mostrada. A view representa qual informação você vê, não como você vê. Há uma sutil diferença.
Então, nesse caso, uma “view” é uma função de retorno para uma URL específica, por que esta função de retorno descreve qual informação é apresentada.
Além disso, é imprescindível separar conteúdo de apresentação – onde os templates residem. No Django, uma “view’ descreve qual informação é apresentada, mas uma view normalmalmente delega para um template, que descreve como a informação é apresentada.
Onde o “controller” se encaixa, então? No caso do Django, é provavelmente o próprio framework - o maquinário que envia uma requisição para a “view” apropriada, de acordo com a configuração de URL do Django.
Se você está faminto por acrônimos, você deve dizer que Django é um framework “MTV” – Isto é, “model”, “template” e “view”. Essa correspondência faz muito mais sentido.
No final do dia, é claro, tudo se resume a conseguir fazer coisas. Independentemente de como as coisas são nomeadas, Django as executa da forma que é mais lógica para nós.
<Framework X> faz <Feature Y>, por que o Django não?¶
Nós estamos bem conscientes de que existem outros frameworks para desenvolvimento web e nós não iremos nos opor a emprestar ideias quando apropriado. No entanto, Django foi desenvolvido exatamente porque nós estávamos infelizes com o status quo. Portanto, por favor note que “porquê o <Framework X> faz tal coisa” não vai ser razão suficiente para adicionar uma determinada funcionalidade ao Django.
Por que você escreveu tudo no Django do zero, ao invés de usar outras bibliotecas Python?¶
Quando Django foi originalmente escrito alguns anos atrás, Adrian e Simon gastaram um pouco de tempo explorando os vários frameworks Web de Python disponíveis.
Em nossa opinião, nenhum deles era completamente satisfatório.
Nós somos exigentes. Você pode até nos chamar de perfeccionistas. (Com prazos.)
Ao longo do tempo nós esbarramos em bibliotecas open-source que faziam coisas que nós já havíamos implementado. Foi reconfortante ver outras pessoas resolvendo problemas de maneiras similares, no entanto, era tarde demais para integrar código externo - nós já havíamos escrito, testado e implementado nossos próprios pedaços de framework em diversas configurações de produção – e nosso código atendia deliciosamente às nossas necessidades.
Na maioria dos casos, no entanto, nós descobrimos que as ferramentas e frameworks existentes possuíam inevitavelmente algum tipo de falha fundamental que nos deixava enojados. Nenhuma ferramenta encaixava-se em nossa filosofia 100%.
Como nós dissemos: Somos exigentes.
Nós documentamos nossas filosofias na documentação: Página de filosofias de design.
O Django é um sistema de Gestão de Conteúdo (CMS)?¶
Não, Django não é um CMS, ou algum tipo de “turnkey product” de si mesmo. É um framework Web; É uma ferramenta de programação que te possibilita construir websites.
Por exemplo, não faz muito sentido comparar Django com algo como Drupal, porque Django é algo que você usa para criar coisas como Drupal.
É claro que o site automático de administração do Django é fantástico e economiza tempo – no entanto, esse site é um módulo do framework Django. Além disso, apesar do Django ter facilidades especiais para construir aplicações que servem como gerenciadores de conteúdo (CMS) não significa que ele não é igualmente apropriado para construírem aplicações com outros propósitos.
Como posso baixar a documentação do Django para lê-la offline?¶
A documentação do Django está disponível na pasta docs
de cada distribuição em tarball. Essa documentação está no formato reST (reStructuredText) e cada arquivo de texto corresponde a uma página no site oficial do Django.
Porque a documentação está armazenada em controle de revisão. você pode navegar as mudanças na documentação da mesma forma que pode navegar em mudanças de código.
Tecnicamente, a documentação no site do Django é gerada a partir da última versão de desenvolvimento dos documentos reST. Por conta disso, a documentação no site do Django pode oferecer mais informações do que a que vem com a última distribuição do Django.
Como eu cito o Django?¶
É difícil dar um formato oficial de citação por duas razões: os formatos podem variar bastante entre publicações e padrões de citação para software ainda é uma questão debatível.
Por exemplo, o estilo APA, ditaria algo como:
Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://djangoproject.com.
No entanto, a única orientação verdadeira é aquela que o seu editor irá aceitar, então pegue uma cópia dessas instruções e preencha as lacunas da melhor forma possível.
Se o seu guia de referência requer o nome do editor, use “Django Software Foundation”.
Se você precisa de um local de publicação, use “Lawrence, Kansas”.
Se você precisa de um endereço da Web, use https://djangoproject.com.
Se você precisa de um nome, basta usar “Django”, sem qualquer slogan.
Se você precisa de uma data de publicação, utilize o ano de distribuição da versão a qual você está se referindo (por exemplo: 2013 para a versão 1.5).