Search
Close this search box.
Aplicativos web com Django: do navegador ao framework
aplicativos web

Posts Relacionados:

O Python possui várias opções para quem deseja criar aplicativos web. Nessa categoria, Django é certamente uma das principais. Django é um web framework Python de alto nível, com excelente escalabilidade e capaz de lidar com aplicativos web com os mais variados níveis de complexidade.

Receba nossa newsletter

Aplicativos Web com Django

django

 Django é um web framework livre e de código aberto. Ele se propõe a simplificar o processo de desenvolvimento web fornecendo a maioria dos recursos necessários para criar aplicativos web.

Um projeto Django contém vários códigos pré-escritos para tarefas comuns, como autenticação de usuário, gerenciamento de banco de dados e segurança. Consequentemente, o design do Django incentiva o desenvolvimento rápido sem renunciar à eficiência. O Django é projetado para lidar com sites de diferentes tamanhos e graus variados de complexidade. Por isso, ele é usado por empresas como Instagram e Udemy, e é uma ótima escolha para indivíduos que querem construir aplicativos web robustos de qualquer tamanho. Aprender a usar o Django envolve entender um pouco sobre o funcionamento da internet. Neste post, nos concentraremos em conceitos gerais sobre o funcionamento da web e sobre como o Django se insere nesse contexto.

Solicitação do Navegador

A internet funciona atendendo ao desejo dos usuários de enviar e receber informações ou recursos. A maneira como obtemos recursos é com Uniform Resource Locators ou URLs. Uma URL é simplesmente o endereço de algum recurso na internet. Quando digitamos uma busca num navegador ou clicamos num link, estamos realizando uma solicitação.

Uma solicitação de navegador é essencialmente uma pergunta que um navegador da web faz a um servidor para obter um recurso. O navegador envia a solicitação para o servidor proprietário do site. O servidor recebe a solicitação, procura o recurso solicitado (como uma página ou uma imagem), prepara e envia a resposta de volta para o navegador. Em seguida, o navegador interpreta a resposta e exibe o conteúdo solicitado na tela. Essa conversa entre um navegador e um servidor segue um conjunto de regras chamado HTTP (Hypertext Transfer Protocol ou Protocolo de Transferência de Hipertexto).

HTTP

HTTP é a linguagem da web. Essencialmente, o HTTP define um formato padrão e um conjunto de comandos para a comunicação entre navegadores e servidores. Alguns dos comandos comuns são:

GET – para buscar um recurso existente.

POST – para criar ou atualizar um recurso.

DELETE – para excluir um recurso.

PUT – para atualizar um recurso.

Um navegador envia uma solicitação HTTP para uma URL. Essa solicitação chega a um servidor conectado ao endereço IP do nome de domínio. Mas o que é exatamente esse servidor?

Servidor Web

Um servidor web é o coração do sistema de entregas de um site. Ele desempenha várias funções. O servidor é responsável pelo armazenamento de todos os arquivos que compõem um site como arquivos HTML, imagens, vídeos, arquivos CSS e JavaScript. Além disso, o servidor constantemente “escuta” solicitações recebidas de navegadores da web. Quando um navegador solicita uma página, o servidor encontra os arquivos necessários, monta e envia uma resposta de volta.

Tecnicamente, o servidor é o software em uma máquina projetada para lidar com as solicitações HTTP de entrada. Porém, muitas pessoas também usam o termo “servidor web” para se referir a todo hardware que está servindo o tráfego web. Portanto, o termo servidor pode ser pensado contendo dois aspectos principais:

  • Hardware: o computador físico que armazena os arquivos e executa o software do servidor.
  • Software: os programas que processam e respondem às solicitações da web. Exemplos populares de software de servidor web incluem Apache e Nginx.

Web Framework

Um web framework Python como o Django não é um servidor web. Um servidor web manipula solicitações e respostas HTTP fundamentais. Ele recebe solicitações de um navegador e envia os arquivos apropriados de volta em resposta. Já um web framework como Django fornece as ferramentas e estrutura para construir a lógica e a funcionalidade de aplicativos web. Ou seja, ele funciona em um nível mais alto de abstração do que as interações brutas de um servidor web. Porém, frameworks e servidores web trabalham juntos. Um servidor web geralmente atua como o ponto de entrada para solicitações e, em seguida, entrega essas solicitações a um framework web para processamento.

Entre as tarefas que o Django desempenha em aplicativos web estão: o roteamento (mapeamento de URLs de um site), modelagem (geração de conteúdo HTML dinâmico), interação com banco de dados (geralmente usando ORM), tratamento de formulários e fornecimento de recursos de segurança.

O Django foi projetado para ser compatível com um servidor WSGI (Web Server Gateway Interface) ou ASGI (Asynchronous Server Gateway Interface). Alguns servidores web apropriados para Django são Gunicorn, Hypercorn, Uvicorn e Daphne.

WSGI e ASGI

Web frameworks Python precisam ser implantados em servidores compatíveis com WSGI ou ASGI. Ambos são especificações que definem uma interface padrão entre servidores web e aplicações ou web frameworks Python. O ASGI é explicitamente projetado para suportar padrões de programação assíncrona em web frameworks Python. Em comparação, o WSGI foi projetado para aplicativos web Python com tratamento síncrono de solicitações.

A diferença entre padrões síncronos e assíncronos é simples. Num sistema síncrono, uma solicitação é bloqueada até que uma resposta esteja totalmente pronta. Em contraste, sistemas com tratamento assíncrono de solicitações como ASGI conseguem gerenciar e processar várias solicitações simultaneamente sem bloquear todo o servidor.

http_arch_1

Do navegador ao Django (imagem retirada daqui).

Django

Uma vez que o servidor web envia uma solicitação, o Django precisa retornar uma resposta.

Mas o que o Django faz exatamente?

O Django é responsável por mapear as URLs de um site como seus conteúdos. Ele também realiza o processamento de solicitações recebidas do navegador. É papel do Django interagir com bancos de dados para armazenar e recuperar informações. Ele também lida com o preenchimento dinâmico de páginas web. Mas ainda tem mais. O Django pode atuar na validação de formulários, autenticação de usuários, recursos de segurança, etc. Ou seja, o Django é o centro de um aplicativo web.

Por que usar Django para desenvolver aplicativos web?

Django é o que se costuma chamar de framework com uma linha de base opinativa. Ou seja, ele decide já no início tudo que você precisa para criar aplicativos web por completo. Isso pode ser ruim se você deseja trabalhar com liberdade. Como consequência, ele não é a melhor escolha para desenvolvedores que gostam de começar um projeto a partir de um setup mínimo de funcionalidade e aumentá-lo com base em suas necessidades. Porém, a maioria das pessoas não conhece todas as peças necessárias para montar aplicativos web e descobri-las ao longo do caminho pode ser difícil.

O benefício da filosofia Django é que, ao iniciarmos um projeto, partimos do conhecimento de pessoas que construíram aplicativos web por muito tempo. Ou seja, partimos da experiência acumulada de quem tem uma boa noção sobre todos os requisitos que precisaremos para montar um sistema consistente e coerente. O Django foi lançado em 2005 e já é um framework bem maduro. Portanto, em posts futuros, exploraremos os recursos desse framework fantástico e como eles podem ser usados inclusive com modelos de machine learning e inteligência artificial.

Imagem com IA Generativa – Dia 105

IA generativa img 105

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial