Django é um framework Python gratuito no qual o Instagram, parte do Pinterest e milhares de serviços, painéis e lojas mais pequenos foram construídos. Se um programador te propôs uma “aplicação em Django” ou se encontraste este nome ao procurar tecnologias para o teu próprio projeto, este guia irá explicar em linguagem simples o que é o Django, para que serve e quando é melhor escolher outra coisa.
Índice
- O que é o Django?
- De onde surgiu e quem o usa?
- Como funciona o Django? Modelo, vista, modelo
- Para que serve o Django?
- Quando o Django não é uma boa escolha?
- Django ou WordPress, Laravel, Next.js?
- O que é necessário para executar uma aplicação Django?
- Quanto custa o alojamento para o Django?
- FAQ: perguntas mais frequentes sobre o Django
O que é Django?
Django é um framework web, um conjunto pronto de ferramentas e regras para construir aplicações web em Python. Em vez de escrever do zero o login de utilizadores, o tratamento de formulários, a ligação à base de dados e a proteção contra ataques comuns, o programador recebe tudo isto "na caixa" e foca-se no que distingue o seu projeto.
Os criadores descrevem-no com a frase "o framework para perfeccionistas com prazos". Isto reflete bem o caráter do Django: é completo e bastante rigoroso na forma como um projeto deve ser construído, permitindo que a equipa chegue rapidamente a uma versão funcional e que o código de diferentes programadores seja semelhante.
Alguns factos básicos:
- Licença: open source (BSD), sem custos, também em projetos comerciais.
- Linguagem: Python, uma das linguagens de programação mais populares do mundo.
- Tipo: framework "com baterias incluídas" (em inglês, batteries included), ou seja, com um grande número de módulos integrados.
- Versões: atualmente, estão a ser desenvolvidas as ramificações 5.x e 6.x, uma nova versão surge aproximadamente a cada oito meses e algumas versões selecionadas têm suporte de longo prazo (LTS).
Uma distinção importante: Django não é um site pronto ou um sistema de "clicar e arrastar", como o WordPress. É a base sobre a qual o programador constrói a aplicação. O proprietário de uma empresa geralmente não escreve código em Django, mas sim contrata o projeto e depois usa um painel pronto.
De onde veio e quem o usa?
O Django foi criado em 2003 na redação do jornal Lawrence Journal-World, no Kansas. Os jornalistas precisavam de serviços publicados ao ritmo de uma redação, então os programadores construíram uma ferramenta que permitia criar uma nova secção do site em poucos dias. Em 2005, o código foi disponibilizado publicamente e, desde 2008, o projeto é gerido por uma fundação independente, a Django Software Foundation.
O Django foi ou é utilizado por, entre outros:
- O Instagram (uma das maiores instalações de Django do mundo),
- O Pinterest na fase inicial,
- A Mozilla (parte dos sites e add-ons do Firefox),
- O Disqus, o Eventbrite, sites de organizações governamentais e universidades.
Em Portugal, o Django é popular em software houses, startups e empresas que constroem sistemas internos. A própria plataforma Saplo, onde lês este artigo, também é escrita em Django.
Como funciona o Django? Modelo, Vista, Template
O Django divide a aplicação em três camadas. Os criadores chamam a esta arquitetura de MTV (Model, Template, View):
| Camada | Responsabilidade | Exemplo na loja |
|---|---|---|
| Modelo | descrição dos dados e o seu armazenamento na base de dados | o produto tem um nome, preço, stock |
| Vista (View) | lógica: o que fazer com o pedido | obter produtos da categoria "sapatos" |
| Template | aspeto da página em HTML | lista de produtos com fotos e preço |
Quando alguém acede a um endereço no navegador, o Django verifica no ficheiro de endereços (urls.py) qual a vista que deve processar o pedido. A vista obtém os dados através do modelo, passa-os para o template e envia a página pronta. O programador não escreve consultas SQL manualmente, porque o Django tem um ORM embutido, que é um tradutor entre o código Python e a base de dados.
Além disso, existem módulos que noutras tecnologias teriam de ser instalados:
- Painel de administração gerado automaticamente a partir dos modelos, pronto para introdução de dados desde o primeiro dia,
- Início de sessão, registo, permissões e grupos de utilizadores,
- Formulários com validação de dados,
- Migrações da base de dados, ou seja, alterações seguras à estrutura das tabelas à medida que o projeto se desenvolve,
- Proteção contra ataques comuns: CSRF, XSS, injeção de SQL, clickjacking,
- Suporte para múltiplos idiomas e fusos horários,
- Cache, envio de e-mails, mapas de site, feeds RSS.
O painel de administração é frequentemente o argumento mais forte para as empresas. O cliente obtém um local conveniente para gerir os dados, mesmo antes da interface da aplicação ser desenvolvida.
Para que é o Django?
O Django é útil onde quer que os dados, os utilizadores e a lógica de negócio sejam importantes, e não apenas o aspeto do site. Aplicações típicas:
- Sistemas internos da empresa: CRM, reservas, registo de pedidos, fluxo de documentos, painel de controlo para funcionários.
- Plataformas com contas de utilizador: portais de subscrição paga, cursos online, serviços de anúncios, marketplaces.
- Backend API para aplicações móveis e frontends em React ou Vue, na maioria das vezes com o Django REST Framework adicional.
- Sites com muito conteúdo: portais de notícias, diretórios, bases de conhecimento (o Django é usado, entre outros, pelo CMS Wagtail).
- Projetos de análise de dados e IA: o Python é a linguagem principal de machine learning, pelo que o modelo, os scripts analíticos e a aplicação web podem viver num único ecossistema.
- Lojas com lógica incomum: configuradores de produtos, B2B por atacado com listas de preços individuais (por exemplo, Saleor, Django Oscar).
O denominador comum: um projeto onde um CMS pronto a usar começa a ser um obstáculo porque tens de o dobrar com plugins para coisas para as quais não foi criado.
Quando é que o Django não é a melhor opção?
Honestamente, nem todo o projeto precisa de uma framework. O Django será um exagero quando:
- precisas de um site simples para cartões de visita ou de um blog que será editado por uma pessoa sem conhecimentos técnicos. Aqui, o WordPress ganha pela velocidade de arranque e pelo número de temas prontos a usar.
- não tens um programador e não planeias ter um. Cada alteração numa aplicação Django implica trabalhar no código.
- estás a criar uma loja comum com um sortido típico. O WooCommerce ou uma plataforma de loja pronta a usar iniciar-se-ão mais rapidamente e a um custo mais baixo.
- o projeto é maioritariamente um frontend interativo (animações, uma aplicação a correr no browser) e o backend é mínimo. Nestes casos, o Next.js é a escolha mais natural.
Uma boa regra: se a descrição do projeto soar a “site”, começa com um CMS. Se soar a “sistema” ou “aplicação”, o Django é um forte candidato.
Django ou WordPress, Laravel, Next.js?
| Critério | Django | WordPress | Laravel | Next.js |
|---|---|---|---|---|
| Linguagem | Python | PHP | PHP | JavaScript / TypeScript |
| Tipo | framework | CMS pronto | framework | framework (front + servidor) |
| Painel de administração | integrado, a partir de modelos | integrado | extras (ex: Filament) | nenhum, precisa ser construído |
| Sem programador | não | sim | não | não |
| Melhor para | sistemas, API, dados | sites e blogs | sistemas em PHP | front-ends rápidos, SaaS |
| Alojamento | servidor com Python | alojamento PHP comum | alojamento PHP | Node.js ou Vercel |
Escrevemos mais sobre as diferenças entre um CMS pronto e um framework na comparação WordPress ou Next.js para um site de empresa e no artigo O que é Next.js. A escolha entre Django e Laravel é geralmente uma questão da linguagem em que a equipa trabalha, pois em termos de capacidades, ambos os frameworks são comparáveis.
O que é preciso para executar uma aplicação Django?
Isto surpreende muitas pessoas: não podes colocar uma aplicação Django num alojamento partilhado comum que suporte apenas PHP. Precisas de:
- Python na versão adequada (Django 5.x funciona com Python 3.10 e superior),
- servidor de aplicações, geralmente gunicorn, que executa o código em Python,
- servidor WWW, por exemplo, nginx, que recebe tráfego da internet e o encaminha para o gunicorn, e também serve ficheiros estáticos,
- base de dados: SQLite para começar, PostgreSQL para maior tráfego,
- processo de supervisão, que irá levantar a aplicação após uma falha ou reinício do servidor,
- certificado SSL e um domínio conectado.
Num VPS próprio, tudo isto tem de ser instalado e configurado manualmente, e depois é preciso monitorizar as atualizações do sistema. Para um programador, são algumas horas de trabalho; para o proprietário de uma empresa, geralmente é uma barreira intransponível.
Na Saplo, esta etapa é automatizada. Ao criar uma aplicação Django no Painel, escolhes a versão do Python (3.11 ou 3.12), e o instalador cria automaticamente o ambiente virtual, instala o Django 5.x, executa o gunicorn sob a supervisão do processo supervisor na porta 8000, configura o nginx à frente da aplicação, adiciona o domínio ao ALLOWED_HOSTS e emite um certificado SSL gratuito. O starter funciona com SQLite, e quando a aplicação usa uma base de dados separada, o seu endereço é passado para o processo na variável DATABASE_URL.
O teu próprio código é implementado a partir de um repositório GitHub: depois de conectar o repositório, cada git push para o ramo de produção inicia a compilação e implementação de uma nova versão, geralmente em 1 a 3 minutos. Os detalhes passo a passo foram descritos no guia Como instalar Django na Saplo. Se o projeto combina um backend em Django com um frontend em React, também existe uma opção pronta Django + React no mesmo domínio, sem configurar CORS.
Tens uma aplicação Django em funcionamento com outro fornecedor? A Migração para Saplo é gratuita em qualquer plano. Basta submeter o projeto através do formulário de migração.
Quanto custa o alojamento para Django?
O framework em si é gratuito, só pagas pelo servidor. No mercado, encontrarás três abordagens:
- VPS não gerido: o mais barato em termos de subscrição, mas a configuração e a segurança são da tua responsabilidade.
- Plataformas PaaS (por exemplo, Heroku, Render): implementações convenientes a partir do Git, faturadas mensalmente em dólares, e o custo aumenta com o número de serviços e a base de dados.
- Alojamento com um ambiente Python pronto a usar, como o Saplo: implementações a partir do Git, uma taxa anual fixa em euros.
Uma aplicação Django no Saplo precisa de um mínimo de 256 MB de RAM e 2 GB de disco, por isso um pequeno projeto cabe no plano mais baixo. Planos Saplo (o preço do primeiro ano é igual ao preço da renovação):
| Plano | Preço / ano | RAM | Disco | SSH | Cópias de segurança |
|---|---|---|---|---|---|
| Box S | 27 € | 1 GB | 15 GB | não (Painel, SFTP) | nenhuma |
| Box M | 63 € | 2 GB | 30 GB | sim | nenhuma |
| Box L | 136 € | 6 GB | 60 GB | sim | 7 dias |
| Box XL | 295 € | 12 GB | 150 GB | sim | 14 dias |
Na prática: o Box S é suficiente para um protótipo ou um pequeno painel interno. Um programador que queira aceder ao servidor via SSH (por exemplo, para executar manage.py shell ou verificar os registos) precisa de pelo menos um Box M. Uma aplicação de produção com uma base de dados PostgreSQL, tarefas em segundo plano e tráfego real sente-se bem a partir do Box L, que também tem cópias de segurança diárias de 7 dias. Uma comparação completa está na tabela de preços do Saplo.
Resumo
O Django é um framework Python maduro e gratuito que oferece ao programador um painel de administração, login, base de dados e segurança desde o primeiro dia. É mais adequado para sistemas empresariais, plataformas com contas de utilizador, API e projetos relacionados com dados. Para um website simples ou blog, o WordPress é uma opção melhor. Se já tens um projeto em Django ou estás prestes a encomendá-lo, podes executá-lo no Saplo com implementações a partir do Git e sem configuração manual do servidor.
FAQ: perguntas frequentes sobre Django
O Django é gratuito? Sim. O Django é open source sob a licença BSD e pode ser usado gratuitamente em projetos comerciais. Os custos são o trabalho do programador e o servidor onde a aplicação é executada.
O Django é adequado para programadores iniciantes? Sim, desde que conheças os fundamentos do Python. A documentação oficial tem um tutorial abrangente e a comunidade Django Girls, em Portugal, oferece workshops gratuitos para iniciantes há anos.
O Django é rápido e aguenta muito tráfego? Sim. O desempenho depende principalmente da arquitetura da aplicação, da base de dados e da cache, e não do framework em si. A melhor prova é o Instagram, que atende centenas de milhões de utilizadores em Django.
Posso instalar o Django num alojamento comum? Num alojamento partilhado típico que suporte apenas PHP, não. É necessário um servidor com Python, um servidor de aplicações (por exemplo, gunicorn) e nginx. Na Saplo, todo este ambiente é configurado automaticamente quando a aplicação é criada, os detalhes estão na página Alojamento Django.
Quantas MB de RAM uma aplicação Django precisa? Uma aplicação pequena funciona com 256 MB de RAM. Para um projeto de produção com base de dados PostgreSQL, tarefas em segundo plano (por exemplo, Celery) e maior tráfego, deves planear entre 2 e 6 GB de RAM.
- #Django
- #Framework
- #Hosting Django
- #Python
