FAQ: Geral¶
Por que esse projeto existe?¶
Django grew from a very practical need: World Online, a newspaper web operation, is responsible for building intensive web applications on journalism deadlines. In the fast-paced newsroom, World Online often has only a matter of hours to take a complicated web application from concept to public launch.
At the same time, the World Online web developers have consistently been perfectionists when it comes to following best practices of web development.
In fall 2003, the World Online developers (Adrian Holovaty and Simon Willison) ditched PHP and began using Python to develop its websites. As they built intensive, richly interactive sites such as Lawrence.com, they began to extract a generic web development framework that let them build web applications more and more quickly. They tweaked this framework constantly, adding improvements over two years.
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 uses a “shared-nothing” architecture, which means you can add hardware at any level – database servers, caching servers or web/application servers.
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?¶
Django was originally developed at World Online, the web department of a newspaper in Lawrence, Kansas, USA. Django’s now run by an international team of volunteers.
Como Django é licenciado?¶
Django é distribuido sobre a licença 3-cláusula BSD. Esta é uma licença fonte aberta provendo permissões abrangentes para modificar e redistribuir Django.
Porque Django inclui o arquivo de licença de Python?¶
Django inclui código da biblioteca padrão de Python. Python é distribuída sobre uma licença permissiva de fonte aberta. A cópia da licença de Python está incluída com Django para conformidade com os termos de Python.
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, tudo se resume a fazer as coisas. E, independentemente de como as coisas são nomeadas, Django faz as coisas da maneira que é mais lógica para nós.
<Framework X> faz <feature Y> – por que o Django não?¶
We’re well aware that there are other awesome web frameworks out there, and we’re not averse to borrowing ideas where appropriate. However, Django was developed precisely because we were unhappy with the status quo, so please be aware that “because <Framework X> does it” is not going to be sufficient reason to add a given feature to Django.
Por que você escreveu tudo no Django do zero, ao invés de usar outras bibliotecas Python?¶
When Django was originally written, Adrian and Simon spent quite a bit of time exploring the various Python web frameworks available.
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)?¶
No, Django is not a CMS, or any sort of “turnkey product” in and of itself. It’s a web framework; it’s a programming tool that lets you build 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.
Sim, o site de admin automático do Django é fantástico e economiza tempo – no entanto, o site de admin é 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?¶
The Django docs are available in the docs
directory of each Django tarball
release. These docs are in reST (reStructuredText) format, and each text file
corresponds to a web page on the official Django site.
Porque a documentação é armazenada em um controle de revisão, você pode navegar pelas mudanças de documentação da mesma forma que você pode navegar por modificações 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://www.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”.
If you need a web address, use https://www.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).