Python Web Development

O que é o Django Web Framework?

Read this post in other languages:

Frameworks da Web são ferramentas de software projetadas para dar suporte ao desenvolvimento de aplicativos da Web, incluindo APIs, recursos e serviços da Web. Geralmente, são pacotes completos que vêm com práticas recomendadas, ferramentas, recursos de teste e bibliotecas que facilitam a criação de aplicativos. 

Frameworks fornecem uma estrutura clara, geralmente seguindo o popular padrão de design MVC (model-view-controller) (ou uma variação reconhecível), permitindo a troca rápida entre diferentes frameworks.

Este blog apresenta uma dessas ferramentas, o Django, um framework da Web open source em Python conhecido por oferecer suporte ao desenvolvimento rápido e seguro de aplicativos. Quer você seja um iniciante, um desenvolvedor experiente ou esteja migrando de um framework diferente, junte-se a nós para mergulhar nos detalhes do framework Django.

Componentes principais do Django

A história do Django 

O Django é um framework da Web avançado e open source para a criação de aplicativos da Web usando o Python, projetado para ajudar os desenvolvedores a criar rapidamente sites seguros, fáceis de manter e escaláveis.

O framework teve origem em 2005, quando uma equipe de desenvolvimento na Web, inicialmente encarregada de criar e manter sites de jornais, embarcou em uma jornada. À medida que construíam vários sites, eles identificaram e refinaram vários snippets de código e princípios de design compartilhados. 

Com o tempo, essa sabedoria coletiva se transformou em um framework versátil de desenvolvimento na Web e, em julho de 2005, eles o lançaram ao público como o projeto “Django”. Atualmente, o Django é mantido pela Django Software Foundation (DSF), uma organização sem fins lucrativos que apoia o desenvolvimento do framework, promove seu uso e ajuda a sustentar sua crescente comunidade open source.

A progressão e o aprimoramento do Django têm sido contínuos por muitos anos. A cada nova versão, ele introduziu novos recursos e solucionou problemas, abrangendo o suporte a tipos adicionais de bancos de dados, engines de template e mecanismos de cache. Essas atualizações contínuas ajudaram o Django a permanecer como a melhor opção para os desenvolvedores que procuram um framework da Web confiável e versátil.

As principais filosofias de design do Django

O Django foi criado com um conjunto claro de filosofias de design em mente: filosofias que ajudam os desenvolvedores a escrever códigos limpos, de fácil manutenção e eficientes. Essas ideias moldam tudo, desde a maneira como o Django lida com os dados até como ele orienta os desenvolvedores pela estrutura e lógica dos aplicativos.

Acoplamento fraco

O Django enfatiza o acoplamento fraco, o que significa que seus componentes operam independentemente, com conhecimento mínimo uns dos outros. Isso facilita a substituição ou o upgrade de partes do aplicativo, como o backend do banco de dados ou o engine de templates, sem interromper todo o projeto.

Menos código

Os aplicativos Django devem ser concisos, evitando códigos repetitivos desnecessários. O Django aproveita os recursos dinâmicos do Python, como a introspecção, para otimizar o desenvolvimento. Ao minimizar a repetição e automatizar tarefas comuns, o Django permite que você se concentre mais na criação de recursos do que em escrever códigos de configuração.

Desenvolvimento rápido

Um framework da Web como o Django ajuda a acelerar as partes rotineiras do desenvolvimento na Web, tornando-o muito mais rápido. Com ferramentas integradas, como a interface de administração, a autenticação e o tratamento de formulários, o Django cuida do trabalho pesado, para que você possa entregar projetos com mais rapidez.

Não se repita (DRY, Don’t repeat yourself)

Cada dado deve existir em um único local. Não é bom repetir coisas, mas manter seu código organizado é excelente. O framework deve fazer mais com menos. Esse princípio leva a menos bugs e simplifica as atualizações, pois você não precisa alterar a mesma lógica em vários lugares.

É melhor ser explícito do que implícito

Este é um princípio fundamental do Python (listado no PEP 20) afirmando que o Django não deve ser obrigado a fazer muitas coisas nos bastidores, a menos que isso ajude a maximizar a conveniência, pois isso pode confundir novos desenvolvedores. Manter o comportamento previsível e transparente ao usar o Django garante que desenvolvedores de todos os níveis possam entender o que seu código está fazendo sem precisar adivinhar.

Consistência

O Django visa a consistência, desde na maneira como escrevemos o código Python até na sensação de usar o framework. Essa uniformidade entre as diferentes partes de um projeto (e até mesmo entre projetos diferentes) torna a colaboração mais fácil e o aprendizado do framework mais simples.

Principais componentes do Django

No centro de cada projeto Django, estão alguns componentes principais que trabalham juntos para processar dados, lidar com solicitações de usuários e fornecer respostas ao navegador. Compreender essas partes principais (e como elas interagem) facilita a criação e a manutenção de aplicativos da Web robustos.

Modelos

Os modelos definem a estrutura dos dados do seu aplicativo. Eles representam o esquema do seu banco de dados usando classes Python, o que significa que você não precisa escrever SQL manualmente. Cada modelo normalmente mapeia uma única tabela em seu banco de dados, e cada atributo no modelo mapeia um campo do banco de dados.

Modelos também oferecem uma API avançada para criar, ler, atualizar e excluir dados. Como modelos estão vinculados ao mapeador de objetos relacionais (ORM) do Django, você pode consultar e manipular seu banco de dados usando o código Python em vez de SQL bruto.

Views

Views são funções ou classes Python que recebem uma solicitação da Web e retornam uma resposta. Eles são a lógica central do seu aplicativo, lidando com tarefas como obtenção de dados do banco de dados, aplicação de regras de negócios e transmissão de informações a templates para exibição.

As views do Django podem retornar HTML, JSON ou qualquer outro tipo de resposta. Eles atuam como a camada intermediária entre modelos (seus dados) e templates (sua interface de usuário).

Templates

Templates controlam como os dados são apresentados ao usuário. A linguagem de templates do Django permite que você gere HTML dinâmico, incorporando lógica e variáveis diretamente nos seus arquivos HTML. Os templates são mantidos separados da lógica de negócios para incentivar uma separação clara de responsabilidades.

Você pode percorrer os dados, usar filtros para modificar a maneira como o conteúdo é exibido e incluir parciais (como cabeçalhos ou rodapés) para obter elementos de design reutilizáveis.

URLs

URLs definem a camada de roteamento do seu projeto Django. A configuração de URLs mapeia caminhos específicos (como /blog/ ou /contact/) para views. Isso informa ao Django qual parte do código deve ser executada quando um usuário visita uma determinada URL.

URLs são definidas nos arquivos urls.py e podem incluir padrões dinâmicos, como slugs ou IDs, para atender a diferentes tipos de conteúdo a partir da mesma lógica de view.

Quem usa o Django?

O Django conta com a confiança de alguns dos maiores nomes da Web, incluindo o Instagram, o Pinterest e o Disqus. Essas plataformas lidam com grandes quantidades de tráfego e contam com a estrutura sólida e a escalabilidade do Django para manter as coisas funcionando sem problemas.

No entanto, o framework também é ideal para todos os tipos de projetos, desde sites simples e sistemas de gerenciamento de conteúdo até aplicativos complexos orientados por dados. Startups, organizações sem fins lucrativos e desenvolvedores que criam ferramentas internas usam o Django por sua flexibilidade e velocidade.

Parte do que torna o framework tão popular é sua abordagem “batteries-included”. O Django vem com tudo o que você precisa para criar um aplicativo da Web, como autenticação de usuário, um painel de administração e um poderoso kit de ferramentas de banco de dados, tudo pronto para uso. Com uma comunidade forte e muita documentação, também é fácil começar a usar e encontrar suporte à medida que você avança.

Por que usar o Django?

O Django está repleto de recursos que tornam o desenvolvimento na Web mais rápido, mais seguro e mais eficiente. Não importa se você está criando um projeto pequeno ou um aplicativo de grande escala, o Django ajuda você a começar a trabalhar rapidamente, sem sacrificar a qualidade ou a flexibilidade. Vamos analisar mais de perto o que torna o Django uma escolha tão sólida para os desenvolvedores.

Abordagem “batteries-included” 

O Django segue a abordagem “batteries-included”, oferecendo um amplo conjunto de recursos que os desenvolvedores exigem desde o início. Como todos os componentes necessários estão integrados em um único pacote, eles operam de forma harmoniosa e mantêm princípios de design uniformes.

Versátil para diferentes aplicativos

O Django provou sua versatilidade ao servir como base para uma ampla gama de aplicativos da Web, incluindo, entre outros, sistemas de gerenciamento de conteúdo, plataformas de comércio eletrônico, redes sociais e aplicações multitenancy. Ele se integra perfeitamente a vários frameworks no lado do cliente.

Oferecendo uma ampla gama de opções de funcionalidades incorporadas, incluindo suporte a vários bancos de dados populares (MySQL, Postgres, MariaDB etc.) e mecanismos de templates, o Django também oferece a flexibilidade de incorporar outros componentes conforme necessário.

Aplicativos de segurança integrados

O Django ajuda os desenvolvedores a evitar erros de segurança comuns ao oferecer um framework meticulosamente projetado para proteger sites automaticamente com as melhores práticas.

Esse framework incorpora defesas robustas contra ameaças de segurança predominantes, como ataques XSS (cross-site scripting) e CSRF (cross-site request forgery), injeções de SQL, clickjacking e muito mais.

Feito para escalabilidade 

A principal característica do Django reside na sua escalabilidade inerente. Diferentemente de outros frameworks da Web, o Django foi criado especificamente para gerenciar tráfego substancial e grandes volumes de dados desde o início. Não importa se você está criando um blog modesto ou uma ampla plataforma de comércio eletrônico online, o Django permite que seu aplicativo se expanda e se adapte aos seus requisitos específicos.

Código fácil de manter e reutilizar

O Django segue o princípio “Não se repita” (DRY, Don’t repeat yourself), incentivando a manutenção e a reutilização do código para reduzir sua duplicação. Ele também incentiva a organização de recursos relacionados em “aplicativos” reutilizáveis e, em um nível mais granular, agrupa o código relacionado em módulos, seguindo uma estrutura que lembra o padrão de design MVC (model-view-controller).

Implantação flexível em várias plataformas

O Django dá a liberdade de implantar seus aplicativos em vários sistemas operacionais, como Linux, Windows e macOS, sem ficar confinado a uma plataforma de servidor específica. Além disso, o Django conta com o suporte robusto de vários provedores de hospedagem na Web que frequentemente fornecem infraestrutura personalizada e orientação para a hospedagem de sites baseados em Django, como o Fly.io, o AWS LightSail e outros.

Como o Django funciona?

O Django foi projetado para ajudar você a criar sites dinâmicos e orientados por dados de forma rápida e limpa. Ele faz isso organizando seu código usando um padrão de design específico e cuidando de grande parte da lógica repetitiva usada no roteamento de solicitações, na interação com bancos de dados e na geração de respostas.

A arquitetura MVT (model-view-template) do Django

O Django segue a arquitetura MVT (model-view-template) (os componentes que exploramos anteriormente), um parente próximo do padrão MVC (model-view-controller), mais conhecido. Embora os dois sejam semelhantes, a terminologia do Django reflete sua abordagem específica. 

No Django, a “view” faz com o que um “controller” normalmente faria no MVC (gerenciar a lógica e retornar respostas), enquanto o próprio framework cuida de grande parte da funcionalidade do “controller” nos bastidores.

Essa separação de responsabilidades ajuda a criar aplicativos que são mais fáceis de manter, testar e dimensionar. Cada camada tem uma responsabilidade claramente definida, tornando o desenvolvimento mais intuitivo e colaborativo.

Como as solicitações são tratadas no Django

Quando um usuário interage com o seu site baseado em Django (clicando em um link, enviando um formulário ou navegando até uma URL etc.), uma solicitação é enviada ao servidor. O Django processa essa solicitação por meio do seguinte ciclo:

  1. O dispatcher de URLs encontra o padrão de URL que corresponde à requisição e direciona para a view correspondente.
  1. A view interagirá com os modelos se os dados forem necessários, executará qualquer lógica de negócios e, em seguida, passará as informações para um template.
  1. O template renderiza uma página HTML final, que é enviada de volta ao navegador do usuário como resposta.

Esse processo claro facilita a compreensão e a depuração de como o aplicativo se comporta em cada estágio. Para obter um passo a passo mais detalhado, você pode consultar a documentação de solicitação e resposta do Django.

Comparação entre o Django e outros frameworks Python

O Python oferece uma ampla variedade de frameworks da Web, cada uma adequada a diferentes necessidades de projetos. Embora Django seja uma das escolhas mais populares, ele não é a única. 

Aqui está uma rápida comparação entre o Django e outros dois grandes frameworks Python:

  • Flask: um microframework leve e flexível que lhe dá controle total sobre sua stack tecnológica. Ideal para projetos menores ou quando você deseja construir tudo do zero. Consulte a comparação entre o Flask e o Django em nosso guia detalhado.
  • FastAPI: um framework moderno e de alto desempenho criado para APIs, usando dicas de tipos Python e suporte assíncrono. Perfeito para criar back-ends rápidos e escaláveis. Nossa postagem no blog Django x FastAPI analisa os dois frameworks com mais detalhes.

Para entender melhor como esses três frameworks Python populares se comparam uns aos outros, confira nosso guia sobre o melhor framework da Web Python

Tutorial do Django: como configurar seu primeiro projeto Django

Pronto para começar a programar com o Django? Esse tutorial orientará você pelos passos essenciais para criar e executar seu primeiro projeto Django com o PyCharm: o melhor IDE da categoria para desenvolvimento Django!

Programe mais rapidamente com a assistência de código específica do Django, navegação e refatoração em todo o projeto e suporte total para templates Django. Esses passos formam a base de quase todos os aplicativos Django que você criará com o PyCharm.

Crie um ambiente virtual

Antes de instalar o Django, é uma boa prática isolar as dependências do seu projeto em um ambiente virtual. Isso evita conflitos entre diferentes projetos Python no seu sistema.

python3 -m venv

Crie um ambiente virtual no Python

Ative o ambiente virtual

Uma vez ativado, seu terminal deverá mostrar o nome do ambiente no início da linha.

source /bin/activate

Ative o ambiente virtual no Python

Instale o framework Django

Agora que seu ambiente está ativado, você pode instalar o Django usando o pip:

pip install Django

Esse comando baixa e instala a versão mais recente do Django a partir do Python Package Index (PyPI). Você pode confirmar a instalação com:

django-admin  - - version

Instale o framework Django

Crie um novo projeto

Com o Django instalado, você está pronto para criar seu primeiro projeto:

django-admin startproject helloworld

Esse comando gera um diretório helloworld contendo a seguinte estrutura:

helloworld/
├── manage.py
└── helloworld/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    ├── asgi.py
    └── wsgi.py

Veja a seguir o que cada arquivo faz:

  • manage.py: uma ferramenta de linha de comando que permite que você interaja com o seu projeto Django (executar servidores, gerenciar bancos de dados etc.).
  • settings.py: contém toda a configuração do seu projeto, incluindo configurações de banco de dados, aplicativos instalados, middleware e muito mais.
  • urls.py: mapeia URLs para views (mais sobre isso posteriormente).
  • wsgi.py / asgi.py: pontos de entrada para servidores da Web compatíveis com WSGI e ASGI, usados para implantação.

Nesse ponto, você criou uma estrutura de projeto Django funcional. 

Crie um novo projeto Django

Execute seu aplicativo Django

Para ver seu projeto Django concluído em ação, navegue até o novo diretório do projeto:

cd helloworld

Agora, execute o servidor de desenvolvimento com:

python manage.py runserver

Você verá um resultado que inclui: 

Starting development server at http://127.0.0.1:8000/

O aplicativo está instalado e executando sem problemas. Agora, vá para o navegador da Web e acesse http://127.0.0.1:8000.

Em seguida, você verá a página de boas-vindas padrão do Django: 

Esse servidor de desenvolvimento integrado é ótimo para testes locais. Quando estiver pronto para passar para a produção, você deverá mudar para uma solução mais robusta (por exemplo, Gunicorn ou uWSGI).

Criando um aplicativo Django no PyCharm

Se você ainda não usou o PyCharm para desenvolvimento Django, vale a pena explorá-lo. O PyCharm oferece suporte imediato para o Django, facilitando o gerenciamento da estrutura do seu projeto, a execução do servidor de desenvolvimento e o trabalho com templates, modelos e views do Django, tudo em um poderoso IDE feito sob medida para Python.

Criar um aplicativo Django no PyCharm é simples:

  • Crie ou abra um projeto Django: o PyCharm pode detectar manage.py e aplicar automaticamente as configurações específicas do Django.
  • Habilite o suporte ao Django: nas configurações do projeto, especifique o caminho para o arquivo manage.py e a raiz do Django.
  • Crie um novo aplicativo Django: clique com o botão direito do mouse no seu projeto, selecione New | Django App e dê um nome ao seu aplicativo.
  • Execute e teste: use o terminal integrado do PyCharm ou execute as configurações para iniciar o servidor de desenvolvimento e testar seu aplicativo no navegador.

Você também se beneficiará de recursos como complementação de código inteligente, realce de sintaxe, verificação de erros e suporte a templates, todos otimizados para o desenvolvimento Django.

Próximos passos com Django

Se você estiver pronto para começar a criar seu próprio projeto, nossos blogs e tutoriais são um ótimo ponto de partida. Não importa se você está apenas começando ou quer aprofundar suas habilidades, há muitos recursos para orientar sua jornada:

  • Como aprender Django: um roteiro para iniciantes com tutoriais e dicas selecionadas para ajudar você a se familiarizar rapidamente com o Django.
  • Ideias de projetos Django: explore ideias de projetos práticos para aprimorar suas habilidades e aplicar o que você aprendeu de forma significativa.

Para explorar mais, acesse a documentação oficial do Django para obter guias detalhados e referências de API, e envolva-se na comunidade do Django.

Baixe o PyCharm: Suporte completo para Django

Comece a usar o Django de maneira inteligente usando o PyCharm, o IDE criado com suporte completo ao Django pronto para uso. 

O PyCharm permite que você programe mais rapidamente com a assistência de código específica do Django, navegação e refatoração em todo o projeto e suporte total para templates Django. Você pode se conectar com o seu banco de dados com um único clique e trabalhar com frameworks de TypeScript, JavaScript e front-end. O PyCharm também é imediatamente compatível com o Flask e o FastAPI. 

Crie aplicativos melhores e otimize o seu código. Comece a usar o PyCharm agora mesmo, para ter uma experiência de desenvolvimento sem esforço no Django.

Artigo original em inglês por:

Evgenia Verbina

Evgenia Verbina

image description

Discover more